Steuerung der Lüftungsanlage Pluggit Avent P300

Begonnen von SvenJust, 24 April 2014, 13:37:15

Vorheriges Thema - Nächstes Thema

SvenJust

#90
Guten Morgen,

das geht ja jetzt alles schneller als gedacht.

Die Debugausgaben für unterschiedliche Bereiche lassen sich getrennt ein- und ausschalten:
int serialDebug = 0;
int serialDebugFan = 0;
int serialDebugAntifreeze = 1;


Zitat von: Starsurfer am 09 Dezember 2017, 22:54:51
steige aber noch nicht ganz durch die ganzen MQTT Topics durch.

Zu mqtt:
Mit  mosquitto_sub -v -h localhost -t "d15/state/kwl/#" lassen sich die Nachrichten von der Lüftungsanlage abonnieren.
Mit  mosquitto_pub -t d15/set/kwl/lueftungsstufe -m 1 lässt sich die Lüfterstufe einstellen.
Allgemein, alles was mit d15/set/kwl/ beginnt, lässt sich an die Lüftungsanlage senden, alles was mit d15/state/kwl/ beginnt, sendet die Lüftungsanlage, alles mit d15/debugset/kwl/ kann zu Debugzwecken an die Lüftungsanlage geschickt werden.


Zitat von: Starsurfer am 09 Dezember 2017, 22:54:51
So Steuerung ist aufgebaut aber noch nicht an der Anlage angeschlossen, kann ich heute nicht mehr machen, die Kinder schlafen.
Zumindest bekomme ich die Ausgaben auf dem Seriellen Monitor
Falls keine Tachosignale vom Lüfter kommen, ersetze bitte
  // Lüfter Tacho Interrupt
  pinMode(tachoPinFan1, INPUT);
  attachInterrupt(tachoPinFan1, countUpFan1, RISING );
  pinMode(tachoPinFan2, INPUT);
  attachInterrupt(tachoPinFan2, countUpFan2, RISING );


durch
  // Lüfter Tacho Interrupt
  pinMode(tachoPinFan1, INPUT_PULLUP);
  attachInterrupt(tachoPinFan1, countUpFan1, RISING );
  pinMode(tachoPinFan2, INPUT_PULLUP);
  attachInterrupt(tachoPinFan2, countUpFan2, RISING );

INPUT wird durch INPUT_PULLUP ersetzt.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

Moin,
habe gerade die Anlage verkabelt und es läuft  ;D
Ist kein Strom auf dem Arduino stehen die Lüfter.
Die Lüfter scheinen leicht in der Drehzahl zu schwanken, kann aber durchaus an der fliegenden Verkabelung liegen.
Die Optokoppler sind in 10min nicht sonderlich warm geworden.

Aber ein paar Anmerkungen zum Code habe ich:
- Die Einstellungen für die Pins sollten alle oben im Code stehen
- Die Einstellungen für die Netzwerkkarte und die IP vom MQTT sollten ganz nach oben
- Die Meldungen auf der Console sind ein bißchen schwammig, habe eine Weile gesucht, bis ich die Meldungen für keine Verbindung zum MQTT gefunden hatte und auch zuordnen konnte.
- Es scheint keine Meldung zu geben, ob eine Verbindung zum NTP Server stattgefunden hat, oder ich habe sie übersehen.
- Den Timestamp würde ich in Datum und Uhrzeit umwandeln.

Den Code für den Bypass und Heizregister würde ich auslagern in extra Dateien und den Code dafür nur bei Bedarf aufzurufen.

Bitte nicht als Kritik verstehen, es ist soweit alles super  ;D

Gruß Sascha
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

SvenJust

Zitat von: Starsurfer am 10 Dezember 2017, 11:20:58
Moin,
habe gerade die Anlage verkabelt und es läuft  ;D
Das hört sich gut an.   :D

Zitat von: Starsurfer am 10 Dezember 2017, 11:20:58
Ist kein Strom auf dem Arduino stehen die Lüfter.
ok

Zitat von: Starsurfer am 10 Dezember 2017, 11:20:58
Die Lüfter scheinen leicht in der Drehzahl zu schwanken, kann aber durchaus an der fliegenden Verkabelung liegen.
Hast Du die Tachoeingänge auf INPUT_PULLUP gestellt? Ansonsten vermute ich, dies liegt an den Parametern der PID Regler. Bitte stelle ein:
int serialDebug = 0;
int serialDebugFan = 1;
int serialDebugAntifreeze = 0;


und lasse die Anlage unverändert auf Stufe 3 für 10 Minuten laufen. Wenn Du mir die serielle Ausgabe (Copy & Paste) schickst, schaue ich mir das an.

Zitat von: Starsurfer am 10 Dezember 2017, 11:20:58
- Es scheint keine Meldung zu geben, ob eine Verbindung zum NTP Server stattgefunden hat, oder ich habe sie übersehen.
NTP Code ist auskommeniert gewesen, da er momentan bei mir nicht nonblocking lief, obwohl die Bibliothek dies eigentlich sagte.

Den Code selbst räume ich demnächst auf. Hast Du das TFT-Panel ergänzt? Kannst Du mir Deinen Codestand schicken, ich übernehme dann die entsprechenden Teile.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

Die Drehzahl schwankt nach Gehör, ich habe leider keine Möglichkeit die Anlage laufen zu lassen und eine Serielle Ausgabe zu bekommen.
Ich bekomme den PC nicht zur Anlage und die Anlage nicht zum PC  ;D
Wenn ich das richtig in Erinnerung habe laufen die Lüfter bei einer Drehzahl von 3024, so ungefähr.

Weißt du schon ob dein TFT mit der MCUFRIEND_kbv.h Libary läuft?
Ich bin da noch nicht zu gekommen, kann ich aber heute Nachmittag machen und den Code dann heute Abend posten.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

SvenJust

Zitat von: Starsurfer am 09 Dezember 2017, 13:28:14
Als kleine Verbesserung, wäre es vielleicht sinnvoll, die verwendeten Bibliotheken mit dazu zu packen und die Bauteile in der Beschreibung zu erwähnen.
Für die verwendeten Bauteile und den Aufbau der Schaltung gibt es den Schaltplan https://github.com/svenjust/room-ventilation-system/tree/master/Docs/circuit%20diagram


Zitat von: Starsurfer am 09 Dezember 2017, 13:28:14
Schaue gerade den Code durch, die Pin Belegungen würde ich alle nach oben machen -> die Pins der Lüfter sind ziemlich weit unten im Code.
Die Pinbelegung folgt direkt nach dem einleitenden Kommentar und den includes. Die Pinbelegung für die Temperatursensoren verschiebe ich auch an die Stelle. Damit sind alle Pinbelegungen zusammen in einem Block.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

SvenJust

Zitat von: Starsurfer am 10 Dezember 2017, 11:47:35
Die Drehzahl schwankt nach Gehör, ich habe leider keine Möglichkeit die Anlage laufen zu lassen und eine Serielle Ausgabe zu bekommen.
Ich bekomme den PC nicht zur Anlage und die Anlage nicht zum PC  ;D
Wenn ich das richtig in Erinnerung habe laufen die Lüfter bei einer Drehzahl von 3024, so ungefähr.
Hast Du INPUT_PULLUP verwendet? Hast du den NTP Code wieder auskommentiert?


Zitat von: Starsurfer am 10 Dezember 2017, 11:47:35
Weißt du schon ob dein TFT mit der MCUFRIEND_kbv.h Libary läuft?
Ich bin da noch nicht zu gekommen, kann ich aber heute Nachmittag machen und den Code dann heute Abend posten.
Nein, weiß ich leider nicht, meines ist noch auf dem Postweg. Wenn deines damit läuft, baue doch den Code ein, ich übernehme und wir schauen später...
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

Nein hatte da noch nichts geändert, ist der original Code von gestern. Ich setze mich da heute Nachmittag mal dran, wenn die Kinder Mittagsschlaf machen.
Ist mit zwei kleinen Kinder nicht so einfach Ruhe dafür zu finden  8)

Nachtrag: Eine PCB Platine sollte es aber unbedingt werden, sonst lötet man sich ja nen Wolf. Mal sehen ob wir jemanden finden der das kann und Lust zu hat zu entwerfen.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Starsurfer

Anbei schon mal die Datei mit ein paar Code Änderungen, mußt du mal schauen ob du das so übernimmst.
Änderungen sind momentan ungetestet.
Es fehlt noch die TFT Ausgabe im Loop, da muss ich mir erst einmal den Code anschauen und die Anzeige da rein zu basteln.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

Edelsteine

Zitat von: Starsurfer am 10 Dezember 2017, 11:20:58
Moin,
habe gerade die Anlage verkabelt und es läuft  ;D

Sauber! Ihr seid turboschnell! Ich komme kaum nach, alles nachzulesen. Ich fürchte, ich kann euch auch gar nicht helfen (sagt mir wie!). Ich denke, ich werde mich schon mal mit Fehm beschäftigen und einen Raspberry aufsetzen ...
Tatsächlich habe ich es gestern Morgen geschafft, meine original Drucksensoren-Platine von Pluggit noch mal zum Laufen zu bringen - war wohl ein Wackelkontakt, hab die Sensoren noch mal neu verlötet. Das bringt mich in die glückliche Lage, schon mal ohne Frost über den Winter zu kommen und hinterher eine funktionierende Steuerung verkaufen zu können ;-) Das Ding kommt aber auf alle Fälle raus!

SvenJust

Zitat von: Starsurfer am 10 Dezember 2017, 14:14:41
Anbei schon mal die Datei mit ein paar Code Änderungen, mußt du mal schauen ob du das so übernimmst.
Änderungen sind momentan ungetestet.
Es fehlt noch die TFT Ausgabe im Loop, da muss ich mir erst einmal den Code anschauen und die Anzeige da rein zu basteln.

Danke für die Vorschläge, ich habe die Umstellungen der Definitionen und die Erweiterung für das Display übernommen. Funktionen, die das Display betreffen, habe ich in eine eigene Datei ausgelagert.

Der aktuelle Code steht bei Github: https://github.com/svenjust/room-ventilation-system Er ist ungetestet, aber kompilierfähig.

Zitat von: Starsurfer am 10 Dezember 2017, 11:47:35
Die Drehzahl schwankt nach Gehör, ich habe leider keine Möglichkeit die Anlage laufen zu lassen und eine Serielle Ausgabe zu bekommen.
Ich bekomme den PC nicht zur Anlage und die Anlage nicht zum PC  ;D
Wenn ich das richtig in Erinnerung habe laufen die Lüfter bei einer Drehzahl von 3024, so ungefähr.

Die Drehzahl ist viel zu hoch, die Lüfter sollten in der Grundeinstellung mit 1830, der zweite mit 2500 U/min drehen. Ich vermute das Tachosignal als Problem. Bitte teste den Code mit INPUT_PULLUP. Schwankt die Drehzahl hier auch?

Wenn ich richtig in Erinnerung habe, kannst Du von Deiner Lüftungsanlage per mqtt senden? Wenn der Fehler trotz INPUT_PULLUP besteht, würde ich den Code um einige mqtt-Debug-States erweitern, damit die Steuerung die Lüfterdrehzahl an den mqtt-Broker sendet.

VG Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

Moin,
Ja ich kann die Anlage nochmal anschließen, kann dir aber noch nicht genau sagen wann. Ist mit Steckbrett nicht ganz so einfach das zu verkabeln. Wenn ich weiß das die Anlage mit der Schaltung und den Optokoppler so läuft, werde ich mir wohl erst einmal was zusammen löten, damit das verkabeln einfacher ist.

Momentan werden die Lüfter Drehzahlen noch nicht per Mqtt gesendet?
Wäre super, wenn das vorher noch eingebaut wird.

In Fhem hast du die Steuerung noch nicht angelegt?
Falls doch, könntest du mal den Teil aus der fhem.cfg Posten?
Dann könnte ich die Lüfter Stufen auch gleich testen und schauen ob auch alles in Fhem ankommt.

Gruß Sascha
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

SvenJust

Zitat von: Starsurfer am 11 Dezember 2017, 12:17:10
Ja ich kann die Anlage nochmal anschließen, kann dir aber noch nicht genau sagen wann. Ist mit Steckbrett nicht ganz so einfach das zu verkabeln. Wenn ich weiß das die Anlage mit der Schaltung und den Optokoppler so läuft, werde ich mir wohl erst einmal was zusammen löten, damit das verkabeln einfacher ist.
Ok.

Zitat von: Starsurfer am 11 Dezember 2017, 12:17:10
Momentan werden die Lüfter Drehzahlen noch nicht per Mqtt gesendet?
Doch, aber nicht die Tachosignale, die vom Lüfter kommen. Diese benötigen wir aber, um den Fehler der wechselnden Drehzahlen zu finden. Wenn die Tachosignale nicht korrekt sind, dann regeln die PID-Regler permanent dagegen an. Dies könnte die wechselnden Drehzahlen erklären. Ebenso kann es sein, das die Tachosignale korrekt ankommen, die wechselnden Drehzahlen aus der geringen Auflösung des PWM-Signal resultieren. Das PWM-Signal stellt nur 255 unterschiedliche Signale bereit, bei einer Nenndrehzahl der Lüfter von 3200 U/min kann also nur auf 12 U/min (3200/255) genau gestellt werden. Auch hier regelt der PID-Regler nach. Bei meinem Testaufbau mit Prozessorlüftern ist dies nicht zu hören, nur an den Regel- und Messwerten zu sehen. Für beide Probleme sehe ich programmtechnische Lösungen, nur muss ich eben wissen, was genau passiert. Ich baue eine Version der Software, die die Mess- und Regelwerte per mqtt sendet und melde mich.

Zitat von: Starsurfer am 11 Dezember 2017, 12:17:10
In Fhem hast du die Steuerung noch nicht angelegt?
Falls doch, könntest du mal den Teil aus der fhem.cfg Posten?
Dann könnte ich die Lüfter Stufen auch gleich testen und schauen ob auch alles in Fhem ankommt.
Nein, bisher nicht. Ich schreibe die mqtt-Kommandos immer per Shell-Kommando.
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

OK dann muss ich Mal schauen das ich das in Fhem eingerichtet bekomme, damit ich die Stufen per Tablet ändern kann.
FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com

SvenJust

#103
Hallo!

Zitat von: Starsurfer am 11 Dezember 2017, 14:17:40
OK dann muss ich Mal schauen das ich das in Fhem eingerichtet bekomme, damit ich die Stufen per Tablet ändern kann.
Brauchst Du nicht mehr, siehe unten.

Es steht eine neue Version auf: https://github.com/svenjust/room-ventilation-system

Die Debugausgaben für die Lüftersteuerung per mqtt sind bei dieser Version standardmäßig eingeschaltet.

Mit 
mosquitto_pub -t d15/debugset/kwl/fan1/getvalues -m off bzw 
mosquitto_pub -t d15/debugset/kwl/fan2/getvalues -m off
werden die Debugausgaben für jeden Lüfter einzeln ausgeschaltet, on schaltet wieder ein. Für das Debuggen muss aktuell nichts gemacht werden.

Die Debugmeldungen kannst du mit dem folgenden Befehl aufzeichnen: mosquitto_sub -v -h localhost -t "d15/debugstate/kwl/#"  >> /tmp/kwl_mqtt_debug.csv

Den Arduino dann bitte mit der Lüftungsanlage fünf Minuten laufen lassen. Anschließend bitte die Datei /tmp/kwl_mqtt_debug.csv hier posten.

Ein Mqtt-Device in fhem für die KWL einrichten:

Broker
define myBroker MQTT 192.168.20.240:1883 ## bitte EIGENE IP-Adresse eintragen

Device:
define kwl MQTT_DEVICE
attr kwl room DEV_KWL
attr kwl subscribeReading_Fan1Speed d15/state/kwl/fan1/speed
attr kwl subscribeReading_Fan2Speed d15/state/kwl/fan2/speed
attr kwl subscribeReading_StateLueftungsstufe d15/state/kwl/lueftungsstufe
attr kwl publishSet 0 1 2 3 4 5 d15/set/kwl/lueftungsstufe


In fhem kannst Du dann die Stufen der Lüftungsanlage einstellen und siehst die aktuellen Lüfterdrehzahlen.

Btw. Antifreeze ist immer noch buggy
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

Starsurfer

FHEM Server: Fujitsu Esprimo q920 + LaCrosseGateway + HM-MOD-RPI-PCB WLAN + ConBee
HomeMatic HM-CC-RT-DN - Sonoff Tasmota
LaCrosse TX29DTH - Innr SP120 - Osram Smart+ Plug
Arduino Mega - MQTT - Pluggit 300
https://www.diy-robot-lawn-mower.com