Steuerung der Lüftungsanlage Pluggit Avent P300

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

Vorheriges Thema - Nächstes Thema

Starsurfer

#105
Anbei mal die gewünschte Datei.

- Die TFT Anzeige bleibt irgendwie bei Teste Ventilatoren stehen, muss ich mir noch mal anschauen.
- Lüfterstufen lassen sich bei mir nicht ändern.

Nachtrag:
Weder über FHEM noch über SSH, lassen sich die Lüfterstufen ändern
Zeile 67 müßte sein: #define TEMPERATURE_PRECISION 9
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 12 Dezember 2017, 17:54:55
Anbei mal die gewünschte Datei.

Die muss ich mir nachher in Ruhe ansehen. Aktuell tippe ich darauf, dass die Tachosignale nicht korrekt ankommen.

Zitat von: Starsurfer am 12 Dezember 2017, 17:54:55
Weder über FHEM noch über SSH, lassen sich die Lüfterstufen ändern
Die Solldrehzahlen der Lüfter ändern sich im Laufe der Zeit: Fan1: 1830 -> 1098 -> 2562 und Fan2: 2500 -> 1500 -> 3500. Ich denke, dass die Übermittlung der Lüfterstufen funktioniert. Es hängt aktuell an den Tachosignalen. Wenn diese nicht korrekt sind, versucht die PWM Steuerung dagegen zu regeln. Ich melde mich im Laufe des Abends hier nochmal...

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

Hm aber die Lüfter wurden auch nicht schneller, habe auf Stufe 5 gestellt und es wehte immer noch nur ein leises Lüftchen.
Eventuell sind die beiden Tachosignale vertauscht, ich hatte mir gemerkt welcher Pins für welchen Lüfter da war.
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 12 Dezember 2017, 18:42:19
Hm aber die Lüfter wurden auch nicht schneller, habe auf Stufe 5 gestellt und es wehte immer noch nur ein leises Lüftchen.
Eventuell sind die beiden Tachosignale vertauscht, ich hatte mir gemerkt welcher Pins für welchen Lüfter da war.

Aus der Datei /tmp/kwl_mqtt_debug.csv geht hervor:
1. Das PWM Signal ist ab etwa 17 Sekunden zwischen 900 und 1000. 1000 ist der Maximalwert. Diese Zahl wird durch 4 geteilt und als PWM Signal an den Lüftermotor geschickt. Der Lüfter sollte also fast mit der Maximaldrehzahl drehen. Es sollte ein Sturm und kein leises Lüftchen wehen. Mit einem Oszilloskop sollte das PWM Signal zu sehen sein.

Ich lege die Datei kwl_mqtt_debug in Excel eingelesen bei. In der Spalte K "PWM" kannst Du die Werte für das PWM Signal lesen, diese Zahl wird durch 4 geteilt und als PWM-Signal ausgegeben..

Hast Du ein 10V PWM Signal? Kannst Du die Spannung des PWM Signals messen?

Fehlersuche: In der Funktion setSpeedToFan kannst du die letzten beiden Zeilen:
  analogWrite(pwmPinFan1, techSetpointFan1 / 4);
  analogWrite(pwmPinFan2, techSetpointFan2 / 4);


durch die folgenden Zeilen Austauschen. Hier kommt Sturm:
  analogWrite(pwmPinFan1, 255);
  analogWrite(pwmPinFan2, 255);


hier halber Sturm
  analogWrite(pwmPinFan1, 128
  analogWrite(pwmPinFan2, 128);


Die Lüfter müssen jetzt ganz gleichmäßig drehen. Drehen sie nicht gleichmäßig oder bei 255 herrscht kein Sturm, ist mit der Verkabelung, der Spannung zum Lüfter oder dem PWM Signal etwas nicht in Ordnung.

Viel Erfolg
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

Ok, ich habe eine neue Version hochgeladen https://github.com/svenjust/room-ventilation-system , die die Tachosignale zur weiteren Berechnung NICHT mehr verwendet und das PWM-Signal proportional berechnet. Damit wird eine Fehlerquelle ausgeschlossen. Es wird von einer Nenndrehzahl der Lüfter lt. Datenblatt vom 3200 U/min ausgegangen. Diese Drehzahl soll bei einem PWM-Signal von 255 und 10V erreicht werden.

In den folgenden Zeilen wird jetzt der PWM Wert proportional berechnet. techSetpointFan1 wird dann weiter unten durch 4 geteilt. Für eine Drehzahl von 3200 wird dann 250 als PWM Wert gesetzt. Der Lüfter sollte jetzt voll drehen.

    // Nenndrehzahl Lüfter lt Datenblatt 3200 U/min
    int Nenndrehzahl = 3200;
    techSetpointFan1 = speedSetpointFan1 * 1000 / Nenndrehzahl;
    techSetpointFan2 = speedSetpointFan2 * 1000 / Nenndrehzahl;


Der Code funktioniert bei mir mit den PC Lüftern tadellos.
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

#110
Kann ich heute leider nicht mehr an der Anlage testen.
Ich habe gerade mal meinen Code genommen, den ich weiter vorne mal gepostet hatte und damit getestet. Damit funktioniert die Schaltung, zumindest am Multimeter.
Also sollte der Aufbau richtig sein, die Lüfterstufen lassen sich auch ändern.
Lüfterstufe 1 = 3v -> PWM 95
Lüfterstufe 2 = 4v -> PWM 160
Lüfterstufe 3 = 7v -> PWM 254

Funktioniert bei dir: #define TEMPERATURE_PRECISION TEMP_9_BIT ?

Bei mir:
exit status 1
'TEMP_9_BIT' was not declared in this scope
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

Code gerade am Multimeter getestet, scheint jetzt zu funktionieren.
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 12 Dezember 2017, 21:04:15
Funktioniert bei dir: #define TEMPERATURE_PRECISION TEMP_9_BIT ?

Ja, funktioniert bei mir. Ich denke, wir haben unterschiedliche Versionen der Lib. Ich schaue morgen früh mal...
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

#113
Das TFT Problem konnte ich auch eingrenzen:
Sobald die Tacho Pins aktiviert werden, friert der TFT ein und es geht nichts mehr. Ein Wechsel auf INTERRUPT 4+5 bringt auch keine Besserung.
Keine Ahnung was das sein könnte.
Komisch das bei meinem Code das Problem nicht besteht
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 12 Dezember 2017, 21:04:15
exit status 1
'TEMP_9_BIT' was not declared in this scope

Da hakt es bei mir auch.

SvenJust

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 12 Dezember 2017, 21:33:22
Das TFT Problem konnte ich auch eingrenzen:
Sobald die Tacho Pins aktiviert werden, friert der TFT ein und es geht nichts mehr. Ein Wechsel auf INTERRUPT 4+5 bringt auch keine Besserung.
Keine Ahnung was das sein könnte.
Komisch das bei meinem Code das Problem nicht besteht

Ich glaube, ich konnte den Fehler finden. Im Code fehlte die Funktion digitalPinToInterrupt(), um den Interrupt von einem Pin zu bekommen. Dies ist jetzt korrigiert. Für die Tachoimpulse werden Pin20 und Pin21 verwendet, die Interrupts werden beim Programmstart ausgegeben.

attachInterrupt(digitalPinToInterrupt(tachoPinFan1), countUpFan1, RISING );
attachInterrupt(digitalPinToInterrupt(tachoPinFan2), countUpFan2, RISING );


#define tachoPinFan1            20  // Eingang mit Interrupt, Zuordnung von Pin zu Interrupt geschieht im Code mit der Funktion digitalPinToInterrupt
#define tachoPinFan2            21  // Eingang mit Interrupt, Zuordnung von Pin zu Interrupt geschieht im Code mit der Funktion digitalPinToInterrupt


Der Code wie immer auf: https://github.com/svenjust/room-ventilation-system

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

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

#118
So Code habe ich gerade getestet, TFT friert nicht mehr ein. Klappt also.

Was allerdings nicht klappt ist der Code für die Lüfterstufen, Egal welche Stufe ich einstelle, die Lüfter drehen sich immer in der gleichen Geschwindigkeit. Die veränderten Stufen werden mir im MQTT auch angezeigt, kommen also auch an.
Zur Vorsicht habe ich die 10v des Lüfters direkt an den 10v/PWM Eingang des Lüfters angeschlossen und da drehen beide Lüfter voll hoch, liegt also nicht an den Lüftern.
Die Temperatur Sensoren scheinen auch nicht richtig zu funktionieren, bekomme immer -127 angezeigt, vorher ging das.

Ich werde das eventuell heute Abend noch mal testen und feste PWM Werte für die Stufen vergeben, mal sehen ob es dann klappt.


Hm ich versuche gerade die Stelle im Loop zu finden, welche die Lüfterstufe ändert, aber irgendwie bin ich zu blöd das zu finden...?
Kann man den Code vielleicht für den Anfang erst mal soweit reduzieren, das nur die Lüfter und die Temp Sensoren behandelt werden, weil wenn die nicht richtig laufen brauchen wir da nicht weiter machen,
Wenn die Lüfter und Temp Sensoren richtig laufen kann man die anderen Sachen einbauen.

Kann man den Code eigentlich per LAN auf dem Arduino aktualisieren?
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 13 Dezember 2017, 16:20:23
Hm ich versuche gerade die Stelle im Loop zu finden, welche die Lüfterstufe ändert, aber irgendwie bin ich zu blöd das zu finden...?
Die Funktion setSpeedToFan() steuert die Lüfter mit anhand der Variablen kwlMode und diese wird in der Funktion mqttReceiveMsg geändert.

Zitat von: Starsurfer am 13 Dezember 2017, 16:20:23
Kann man den Code eigentlich per LAN auf dem Arduino aktualisieren?
Nein, das geht leider nicht oder sagen wir, mir ist keine Implementierung bekannt, die zeigt wie dies geht...  ;)
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)