nean-and-i / aerosmartpi

Raspberry Pi based monitoring solution for Aerosmart devices of Drexel und Weiss
GNU General Public License v3.0
4 stars 0 forks source link

Veröffentlichung? #1

Closed daniel89fhem closed 4 years ago

daniel89fhem commented 5 years ago

Hi, ich bin schon länger auf der Suche, wie ich meine Wohnraumlüftung von D&W in fhem integrieren könnte und bin hier auf dein Projekt gestoßen. Wie sieht denn der aktuelle Status aus? Wird das von dir noch veröffentlicht? Oder nutzt du es gar nicht mehr? Freue mich über eine Antwort. Danke :)

kayloehmann commented 5 years ago

Würde ich auch gerne wissen!

nean-and-i commented 5 years ago

Hallo,

ist bereits im Einsatz, via munin als auch Einbindung in FHEM via ssh wrapper. Neu ist allerdings dass man nun auch Befehle an D&W schicken kann, soweit für die Funktionen schreibbare register vorhanden sind, sprich ich kann bereits via fhem per remote (ovpn) die Temperatur oder Lüftung steuern. Mit TP-LINK HS100 wird automatisch IR Säule hinzugeschalten, indirekt getriggert von D&W.

Da aber, bis auf euch 2, so gut wie kein Bedarf angemeldet wurde, auch nicht seitens D&W habe ich den Code bisher nicht veröffentlicht, was ich aber soweit es die Zeit zulässt ändern möchte. Zurzeit ist es aber noch eher eine integration als ein einziges app das alles macht, somit dürfte die doku umfangreicher werden als der eigentliche code der API.

kayloehmann commented 5 years ago

Wie hast Du die Hardware Anbindung des aerosmart realisiert? Einfach ins Netzwerk gehängt?

daniel89fhem commented 5 years ago

Hi nean-and-i Danke für deine Rückmeldung. Dachte schon, da wird nichts mehr kommen :D Mich würde auch interessieren, wie du die Einbindung genau gemacht hast. Ich habe nur eine Wohnraumlüftung von d&w und würde das ganze dann gerne über den Bus vom Display abreifen. Bin auf deine Antwort gespannt

nean-and-i commented 5 years ago

Hi @daniel89fhem ,

ich habe mal was raufgeladen und versucht wenn auch nur allgemein zu beschreiben wie das Framework funktioniert. Hauptkomponenten sind die beiden python skripte welche über USB mit dem D&W Aaerosmart kommunizieren, da diese eine serielle USB Schnittstelle hat, vermutlich zu Wartungszwecken (Achtung, die USB Buchse gleich neben der Ethernet Buchse verwenden, die andere kenne ich nicht ). Ich war überrascht, dass was da drüberläuft bzw. die Register 1:1 dasselbe ist wie in der Modbus Doku. Ich Frage mich da schon wer hier einen überteuerten modbusadapter kauft, wenn man das sehr viel besser und billiger via Raspberry Pi aus der USB Schnittstelle bekommen kann. D&W war nicht interessiert, deshalb gebe ich den code frei, natürlich auf eigene Gefahr und ohne jegliche Garantie. Bei mir läuft das nun schon seit ca 3 Jahren einwandfrei, und durch die Munin und FHEM graphen konnte ich meine Lüftung sehr gut optimieren und das Alarming per Mail hat mich auch schon she geholfen vor allem wenn der Aussenfilter zugefroren war bei meteorologischer Spezialkonstellation (ca. 1/Jahr) (man sieht ganz schön die Drehzahlen der Lüfter auseinander laufen)

Viel Erfolg und Vorsicht beim schreiben auf den Bus, nicht zu schnell und keine kurzen Intervalle, d&w braucht seine zeit,...

rstinzl commented 5 years ago

Hi nean-and-i, super das du dir die Zeit nimmst und uns an deinen Erungenschaften teil haben lässt. Kannst du mir bitte verraten welches D & W Gerät du steuerst? lg

nean-and-i commented 5 years ago

Hi @rstinzl , ich steuere eine Aerosmart m (SW 3.0011), jedoch kann man mit dem python script alle aerosmart/aerosilent modelle auslesen/steuern, genauer gesagt alles was auch mit den modbus adapter funktioniert und eine USB Wartungsschnittstelle besitzt, im schlimmsten Fall müsste man die Register/Parameter im code anpassen, aber die standard Funktionen/Werte sind größtenteils dieselben was ich gesehen habe. Hier die Parameter per Modell -> https://github.com/diresi/drexel-und-weiss/blob/master/900.6667_00_TI_Modbus_Parameter_V4.01_DE.pdf

rstinzl commented 5 years ago

Q nean-and-i, der Link funktioniert bei mir leider nicht

nean-and-i commented 5 years ago

@rstinzl , habe den link korrigiert https://github.com/diresi/drexel-und-weiss/blob/master/900.6667_00_TI_Modbus_Parameter_V4.01_DE.pdf

rstinzl commented 5 years ago

@nean-and-i , danke funktioniert jetzt :)

daniel89fhem commented 5 years ago

@nean-and-i , auch von mir vielen Dank, dass du das mit uns teilst. Ich habe es mir heute grob angesehen und werde vermutlich im Laufe des Wochenends das ganze ausprobieren. Werde dafür einen orange pi als test hernehmen. Später sollte eventuell das ganze über den bestehenden Pi ablaufen.. Der bestehende pi ist allerdings schon recht stark ausgelastet. Hier läuft fhem, iobroker, openvpn, awtrix server :) Aber mit dem orange pi als remote soll es wohl auch funktionieren. Is nur irgendwie schade, für die paar States einen eigenen mini rechner zu betreiben :), eigentlich gehts es mir ja nur darum, die Daten irgendwie in fhem zu bekommen. Den Rest mit logging, history, graphen usw. mach ich dann eh in iobroker. Bei mir würde dann das ganze von fhem ausgelesen werden und diese Daten werden dann an iobroker geschickt. Hier läuft dann meine eigentliche Haussteuerung. Hab das schon für viele andere Dinge so gemacht, da iobroker die Geräte nicht direkt unterstützt hat, ich aber mit iobroker viel besser zurecht komme. Funktioniert aber auch problemlos :)

Zur Installation habe ich noch folgende Fragen: Wenn ich einen nackten pi vor mir liegen habe, mit rasbian (in meinem Fall armbian, ist aber eh ähnlich). Müssen dann noch Pakete installiert werden, damit dein Code funktioniert? Wenn ja, welches und welche version? Die USB Schnittstelle muss ich dann suchen und diese in das python script eintragen richtig? Welche Dateien aus deinem github content müssen wohin kopiert werden? mit cronjobs / crontabs kenne ich mich noch nicht so gut aus... hier muss ich wohl etwas nachlesen, oder kannst du mir kurz beschreiben, welche Befehle ich ausführen muss, damit der cronjob/crontab für diesen (unseren) zweck funktioniert? Nicht gebrauchte Funktionen im phython script kann ich einfach mit # auskommentieren oder? (Hab ja nur die Lüftungsanlage, ohne TPLink Plug, ohne Wärmepumpe. Die Readings in fhem müssen selbst erstellt werden oder? Hierfür hast du im readme die dummy codezeile geschrieben oder? Müssen auf dem fhem Rechner sonst noch irgendwelche Dateien kopiert werden? Müssen auf dem fhem Rechner cronjobs / crontabs angelegt werden?

Ich hoffe du bist nicht genervt von meinen vielen Fragen und hoffe, du hilfst mir (und den anderen) dabei ein bisschen weiter :)

daniel89fhem commented 5 years ago

Ach und noch eine Frage.... du hast ja geschrieben, dass die USB Schnittstelle der Anlage eigentlich eine USB-Modbus Schnittstelle ist oder? Das hieße ja eigentlich, dass die USB Schnittstelle ein RS485 Converter ist, an dem dann die Modbus Geschichte hängt? Eigentlich könnte ich ja dann die Lüftung direkt mit dem bestehende Raspi verbinden und über iobroker einen Modbus Adapter installieren (Unterstützt u.a. Modbus seriell) und dort die einzelne Register abfragen oder? Dann bräuchte ich den Umweg über fhem gar nicht machen?

daniel89fhem commented 5 years ago

Ich habe noch eine Frage. Hab das heute mal versucht, Also die Lüftung direkt über USB mit dem Raspi verbinden, auf dem iobroker usw. läuft. Bei der Konfiguration bin ich mir unsicher, ob ich alles richtig eingestellt habe. Hier mal der Ausschnitt der Einstellungen: Modbus

Ich bekomme zumindest immer eine Fehlermeldung (timeout) wenn ich ein Register auslesen möchte. Hier der Ausschnitt für die Konfiguration eines Registers: Register

Und hier die mögliche Konfiguration des Typs: Typ1 Typ2

Eine weitere Frage ist: Muss in der Lüftung die serielle Schnittstelle konfiguriert werden? Oder betrifft diese Konfiguration nur das Zusatzmodul, was man sich für die Anlage kaufen kann und die bestehende USB Schnittstelle ist mit deinen Parametern immer aktiv? (Baudrate kann nicht verändert werden, da immer 115200 usw. - Wenn man im Gerät die serielle Schnittstelle aktiviert, kann man ja nur zwischen 3 Baudraten einstellen. 2400, 9600 und 19200 - daher denke ich, dass ich die serielle Schnittstelle in der Lüftung wohl nicht aktivieren muss...)

Bin gespannt auf deine Antworten :)

nean-and-i commented 5 years ago

Ich habe noch eine Frage. Hab das heute mal versucht, Also die Lüftung direkt über USB mit dem Raspi verbinden, auf dem iobroker usw. läuft. Bei der Konfiguration bin ich mir unsicher, ob ich alles richtig eingestellt habe. Hier mal der Ausschnitt der Einstellungen:

Ich bekomme zumindest immer eine Fehlermeldung (timeout) wenn ich ein Register auslesen möchte. Hier der Ausschnitt für die Konfiguration eines Registers:

Und hier die mögliche Konfiguration des Typs:

ich kenne den iobroker nicht, wie die Kommunikation mit dem D&W genau funktionier habe ich gerade in einem wiki Beitrag verfasst. Falls also dein iobroker die Serielle Kommunikation auf diese Art und Weise unterstützt wäre das python script obsolete ;-)

Die Einstellungen zur seriellen Kommunikation steht nun auch im wiki, kommt aber aus dem code

Im Detail würde das so aussehen: Auslesen Innentemperatur: io broker müsste an /dev/ttyUSB0 den encoded string "130 201" schicken und würde dann zurückbekommen "130 201 25736" wobei dann "25736" -> 25,74C bedeuten würde. "thats it"

iobroker sieht eigentlich ganz brauchbar aus, bin gespannt auf deine weiteren tests

nean-and-i commented 5 years ago

Eine weitere Frage ist: Muss in der Lüftung die serielle Schnittstelle konfiguriert werden? Oder betrifft diese Konfiguration nur das Zusatzmodul, was man sich für die Anlage kaufen kann und die bestehende USB Schnittstelle ist mit deinen Parametern immer aktiv? (Baudrate kann nicht verändert werden, da immer 115200 usw. - Wenn man im Gerät die serielle Schnittstelle aktiviert, kann man ja nur zwischen 3 Baudraten einstellen. 2400, 9600 und 19200 - daher denke ich, dass ich die serielle Schnittstelle in der Lüftung wohl nicht aktivieren muss...)

Bin gespannt auf deine Antworten :)

Am aerosmart ansich, am panel oder bei der Lüftung muss nichts extra konfiguriert werden, bei Probleme durchs testen das ding evtl. stromlos machen.

Ich weis nicht ob der debug modus irgendwas bringt, subjektiv gesehen geht die serielle schnittstelle etwas schneller, ich habs aktiv, kann man sich aber sicher auch sparen.

daniel89fhem commented 5 years ago

@nean-and-i Danke für deine Antworten. Ich habe gestern abend und heute noch mal etwas ausgiebiger getestet. Mit dem Modbus Adapter in IObroker bin ich nicht weitergekommen - dieser ist für ein echtes Modbus System gedacht. Das haben wir hier ja nicht wirklich. Wir haben "nur" eine Serielle Schnittstelle, die mit dem Registernamen der Modbus Schnittstelle angesprochen werden kann.. Ich habe mir dann den node-red Adapter installiert. Wenn dieser installiert ist, kann man node-red ganz normal nutzen. Habe dann das serial addon für node red installiert. Hab dann die serielle Schnittstelle konfiguriert und hab den Rechner mit der Lüftung verbunden. Ich konnte erkennen, dass die Lüftung von sich aus bereits Daten sendet? Und zwar gleich die Regiesternummer + den Wert. Das heißt, einlesen könnte ich damit die Lüftung in den IOBroker. Müsste nur die Logik dazu schreiben - wäre aber kein Problem. Ich kann ja jede eingehende Nachricht zerteilen und diese dann in einzelne States schreiben. Das Problem ist aber, ich kann nichts schreiben. Wenn ich einen String schicke, passiert einfach nichts. Die Lüftung liefert weiter ihre Daten nach Lust und Laune, aber nicht nach meiner Anfrage.

Hab dann testweise meinen Windows Laptop an die USB Schnittstelle der Lüftung gehängt. Zuerst mit einem normalen Seriellen Überwachungstool. Hab mich verbunden und konnte auch wieder die Werte der Lüftung sehen. Aber beim senden passiert wieder nichts..

Hab das gleiche dann nochmal mit Putty versucht - auch dort das gleiche Problem. Weiß nicht, wass ich noch machen könnte..

Kannst du mal probieren, einen Win Laptop direkt an deine Anlage zu hängen und dort die Strings senden? Bin gespannt ob das bei dir klappt. Eventuell hab ich noch etwas falsch konfiguriert?

Wenn ich einen String getest habe, dann so: "130 201" und "130 201\r" und "130 201\r\n" und "130 201\n" Leider immer ohne direkten Output.

Wie lange braucht denn eigentlich bei dir die Anlage bis sie antwortet? Manchmal ist es mir vorkommen, dass es eine Antwort gibt, aber das kann auch durch Zufall mit den automatischen Antworten der Lüftung zusammenhängen..

nean-and-i commented 4 years ago

Interessant, ich müßte nochmals testen ob die Anlage zyklisch was sendet, aber als ich das damals mit einer seriellen console getestet hatte, kamen da keine Werte von selbst aus dem seriellen Bus, entweder war ich zu ungeduldig oder es funktioniert bei mir "anders". Deshalb das python script, ich kann bestätigen, dass ich auch Schwierigkeiten hatte nach dem Senden die darauf folgende Antwort vollständig und zuverlässig aufzunehmen, da scheint die Anlage etwas launisch zu sein.