Hallo,
in meinem Rack wird es wohlig warm, wenn mehrere virtuelle Maschinen den Virtual Machine Server auf Temperatur bringen. Ich habe daher zwei 12V-Lüfter zur Belüftung des Racks eingebaut, die ich allerdings wegen Stromverbrauch und Lärmerzeugung nur bei Bedarf laufen lassen möchte (Servertemperatur wird gemessen und über FHEM sollen die Lüfter an- oder ausgeschaltet werden). Mein erster Versuch mit einem fertigen Thermostat-Modul (NTC schaltet Relais) ist gescheitert, weil die Hysterese zu gering war.
Ich würde gerne per USB-Port schalten. Das Ganze sollte preiswert sein (max. 15 €) und selbst möglich wenig Strom verbrauchen.
Ich habe mal einen Shop gesehen, wo es fertig bestückte USB-Module mit einem Atmel-µC für den Bau eigener Anwendungen gab, aber den finde ich nicht mehr.
Habt Ihr Anregungen oder Empfehlungen?
Viele Grüße
Boris
Nimm einen einfach usb/seriell Adapter FT232 und benutze die seriellen Leitungen zum Schalten eines Transistors, der die Lüfter schaltet..
Deine gesuchte Bastelanleitung könnte eventuell diese hier sein?
http://www.obdev.at/products/vusb/powerswitch.html
Zitat von: betateilchen am 29 März 2014, 17:31:06
Nimm einen einfach usb/seriell Adapter FT232 und benutze die seriellen Leitungen zum Schalten eines Transistors, der die Lüfter schaltet..
OK, das ist wirklich simpel, zumal ich noch Adapter in der Schublade habe.
Anfängerfrage: was muß ich auf /dev/ttyUSB0 schreiben, damit am Adapter ein Pin auf 0 oder 1 geht?
Zitat
Deine gesuchte Bastelanleitung könnte eventuell diese hier sein?
http://www.obdev.at/products/vusb/powerswitch.html
So ähnlich. Was ich meine war eine fertig mit einer der USB-Varianten vom ATTINY und weiteren SMD-Bausteinen bestückte Platine im DILxx-Format, welche auf der einen Seite einen USB-Anschluß hatte und ringsherum die restlichen Pins des µC herausgeführt. Ebenfalls Transistor* dran und rasch ein einfaches Programm mit LUFA aka MyUSB draufgebraten - fertig.
Viele Grüße
Boris
* entsprechend 2x 12V/0,451A dimensioniert
Zitat von: Dr. Boris Neubert am 29 März 2014, 18:09:35
Anfängerfrage: was muß ich auf /dev/ttyUSB0 schreiben, damit am Adapter ein Pin auf 0 oder 1 geht?
Ich würde einfach eine der Handshake-Leitungen zum Schalten nehmen. So wie man das vor 30 Jahren schon an RS232 gemacht hat. Und genau so lange ist es her, dass ich das zum letzten Mal selbst gemacht habe. Da muss ich auch erst Google bemühen.
setserial /dev/ttyUSB1 0 0
Irgendwas in der Art - schau dir mal die manpage zu setserial an.
http://www.sprut.de/electronic/pic/projekte/luefter/luefter.htm (http://www.sprut.de/electronic/pic/projekte/luefter/luefter.htm)
Nicht unbedingt minimal, aber ein cooles Teil. Hab ich bei mir im PC und funktioniert seit Jahren zuverlässig. Regelt CPU- und Grafiklüfter und ist mit den beiden Temperaturanzeigen auch noch ein hübsches Mäusekino :)
Nur kein USB...
:o ich könnte auch noch ein paar Brotbackrezepte beisteuern. Das wäre auch nicht minimalistisch und auch nicht mit USB.
Ich hatte schon das "wieso soll sich FHEM darum kümmern" in den Fingern - aber das machte mich neugierig:
Zitat von: Dr. Boris Neubert am 29 März 2014, 17:25:07
erster Versuch mit einem fertigen Thermostat-Modul (NTC schaltet Relais) ist gescheitert, weil die Hysterese zu gering war.
Waren die Lüfter ständig am Schalten oder wie?
Zitat von: Pfriemler am 29 März 2014, 22:05:58
Waren die Lüfter ständig am Schalten oder wie?
ja, es wird halt die warme Luft aus dem Gehäuse geblasen und dann schaltet der Thermostat ab, bis sogleich die erwärmte Luft, die aus den Servern kommt, für das Wiedereinschalten sorgt.
Mit Temperaturmessung via sensors oder ipmitool und Regelung per Fhem geht das sicher besser.
Grüße
Boris
Zitat von: betateilchen am 29 März 2014, 18:17:26
Ich würde einfach eine der Handshake-Leitungen zum Schalten nehmen. So wie man das vor 30 Jahren schon an RS232 gemacht hat. Und genau so lange ist es her, dass ich das zum letzten Mal selbst gemacht habe. Da muss ich auch erst Google bemühen
Es gibt tatsächlich reihenweise Google-Ergebnisse, aber wenig Ausgegorenes. Ein ausgearbeitetes Beispiel aus dem Jahr 2000(!) ist hier:
http://www.linux-community.de/Internal/Nachrichten/Serielle-Fernsteuerung-Schnell-geschaltet
(http://www.linux-community.de/Internal/Nachrichten/Serielle-Fernsteuerung-Schnell-geschaltet)
Ok, bei vielen Wärmequellen diese abzufragen und daraus einen Bedarf zu errechnen macht natürlich schon Sinn. Sonst hätte ich jetzt einen Lüfternachlauf ins Feld geworfen, aber dessen Kosten ziehen mit der eleganten USB-Lösung gleich. Oder aber ich würde gleich mal über eine Lüfterdrehzahlregelung nachdenken... wäre mit PWM ja kein Hit.
Geht nich gips nich
ZitatEs gibt tatsächlich reihenweise Google-Ergebnisse, aber wenig Ausgegorenes.
Ich hatte Dir doch setserial genannt - das Programm ist ausgegoren. Hilft Dir das nicht weiter?
Ansonsten nimm die kleine Homematic-Schaltplatine und häng ein Relais dran. Dann hast Du zwar kein USB, bist aber out-of-the-box fhem-kompatibel :)
http://www.elv.de/homematic-schaltaktor-fuer-batteriebetrieb-komplettbausatz.html
Zitat von: betateilchen am 30 März 2014, 12:02:02
Ich hatte Dir doch setserial genannt - das Programm ist ausgegoren. Hilft Dir das nicht weiter?
man setserial hat mir nichts darüber verraten, wie ich einzelne Leitungen der seriellen Schnittstelle setze.
Zitat
Ansonsten nimm die kleine Homematic-Schaltplatine und häng ein Relais dran. Dann hast Du zwar kein USB, bist aber out-of-the-box fhem-kompatibel :)
Homematic kommt mir gar nicht erst ins Haus :o
Ich habe aber noch einen FS20-4fach Schaltaktor...
Jedenfalls liegt jetzt hier schonmal das Meßgerät, der USB-nach-RS232-Konverter, und eine Sub-D-Buchse auf dem Tisch, und vielleicht wird daraus ja schon was.
Jetzt gehe ich aber erstmal grillen!
Viele Grüße
Boris
Hallo Boris,
vielleicht hilft Dir das (http://forum.ubuntuusers.de/topic/seriell-rts-dtr-einzeln-schalten/).
Gruß PeMue
das ist doch das gleiche, was setserial auch macht :P
Beispiel in py (sowas sollte aber in perl auch möglich sein)
import time
import serial
ser = serial.Serial(0)
ser.setRTS(False)
time.sleep(0.5)
ser.setRTS(True)
time.sleep(0.5)
ser.setRTS(False)
Damit kann man einen Blinker bauen :P
weitere Infos auf OS-Ebene: http://www.linuxquestions.org/questions/programming-9/manually-controlling-rts-cts-326590/
So, das habe ich heute mal mit einem modifizierten C-Programm aus Udos Link ausprobiert, und siehe da, es geht mit einem USB-RS232-Konverter basierend auf dem PL2303 nicht. Öffnen des Devise setzt RTS (RTS geht dann von -6,4 V auf +6,6 V). Man kann aber RTS nicht mit ioctl setzen oder löschen. Gelöscht wird es erst, wenn ich das Device wieder schließe.
Werde mir jetzt mal ein FT232RL-basiertes Modul für dreifuffzich in China bestellen...
Viele Grüße
Boris
Na immerhin bist Du ja jetzt schon ein ganzes Stück weiter mit Deiner Minimallösung :)
Mir fällt gerade ein, dass ich vor Jahren mal kleine Reglerplatinen an (vor)laute Prozessor- und Grafikkarten-Lüfter verbaut habe (diese hässlichen kleinen 40mm-Dinger). Die schalteten nicht, sondern regelten in einem Bereich von etwa 10 Grad. Da pumpte nix. Kostete ca 5 Euro... (wegduck)
Geht nich gips nich