Hallo zusammen, ist es möglich den Hausbus, der über die serielle Schnittstelle am PC angeschlossen ist, über eine Weboberfläche z.B. über PHP anzusteuern bzw. auszuwerten? Kennt jemand einen Link über den man weitere Info's z.B. zu Steuerfefehlen bekommt? Tobias
PHP is wahrscheinlich die falsche Wahl. Dies, da PHP eine serverapplikation ist. Da muesse man ja einen PHP server auf dem PC haben. Der wuerde nichts bringen. Viel besser waere eine Umsetzung von TCP/IP nach Seriell, dann muesste der Hausbus nur noch Seiten per Seriell zur Verfuegung stellen. Diese Funktionalitaer gibt's schon. Z
So die falsche Wahl ist das nicht, kommt drauf an was man will. Tobias beschrieb einen PC, an den seriell Hardware angeschlossen ist. Mit z.B. Apache und PHP können darauf Webseiten als Vorlage abgelegt sein, bzw. on-the-fly generiert werden, die mit über RS232 abgefragten Information vervollständigt sind. Umgekehrt können Requests Kommandos am RS232 erzeugen, um damit was zu steuern. PHP hat meines Wissens nur sehr rudimentären Support für RS232, und den auch nur unter Linux, ist nicht portabel. Vielleicht wäre Perl eine ALternative? Ich grüble auch gerade über sowas, wie ich eine Web-Visualisierung am besten umsetze, die mit einer über RS232 angeschlossenen Steuerung redet.
Du brauchst eine Art Proxy. Ich hab z.B. bei meiner experimentellen Steuerung ein kleines C-Programm welches die serielle Kommunikation übernimmt. Über einen TCP/IP-Port kann ich auf den Proxy über PHP zugrifen und Befehle absenden
Hallo, ich habe mittlerweile unter dem Link http://www.mikrocontroller.net/articles/Ports_benutzen_(PHP) eine kleine Beschreibung gefunden. Leider erhalte ich beim beschriebenen Code
1 | <?php
|
2 | |
3 | $fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK); |
4 | |
5 | dio_fcntl($fd, F_SETFL, O_SYNC); |
6 | |
7 | dio_tcsetattr($fd, array( |
8 | 'baud' => 9600, |
9 | 'bits' => 8, |
10 | 'stop' => 1, |
11 | 'parity' => 0 |
12 | ));
|
13 | |
14 | while (1) { |
15 | |
16 | $data = dio_read($fd, 256); |
17 | |
18 | if ($data) { |
19 | echo $data; |
20 | }
|
21 | }
|
22 | |
23 | ?>
|
einen Fehler in Zeile 3. Da ich noch ziemlich wenig Ahnung von PHP habe kann ich damit nichts anfangen. Kann mir da jemand helfen?
Läuft der Server unter Windows? Falls ja kann das nicht gehen, da /dev/ttyS0 ein Linux-Device-Name ist. Außerdem hat glaub jmd vorher angemerkt, dass der Zugriff auf serielle Schnittstellen unter Windoof mit PHP nicht funzt. Gruß, Chris
Hallo, unter http://www.messpc.de/sensor_php.php ist eine Möglichkeit beschrieben. Ich habe versucht auf einem xampp XP-System eine Kommunikatiom mit ATmega8 aufzunehmen (Sensormodul 2 von Scott-Falk Hühn: http://s-huehn.de/elektronik/tempmess/tempmess-sm2.htm). Dies gelimgt mir aber nur, wenn ich vorher eine Verbindung mit der Anzeigensoftware hatte. Warum das so ist, weiß ich noch nicht. Gruß Karl Albert
Was soll das PHP ? Was benoetigt wird, ist eine Zwischenschicht, ein Proxy, der gegenueber dem System einen Socket darstellt und hinten auf die Serielle Schnittstelle rausgeht. Das ist mit wenigen Zeilen Code machbar, vorausgesetzt man verwendet eine Componentensprache wie Delphi. die naechste Frage ist : Wo sind die Webseiten ? Auf dem Hausbus ? In diesem PC ? Falls auf diesem PC, dann muesste eine PC Allikation die Serielle Schnittstelle bedienen und gegenueber einem Socket die Seiten zur Verfuegung stellen.
Bei mir läuft ein RS485-Hausbus seit vielen Monaten ohne Probleme mit einer Websteuerung. Die Sache ist ziemlich simpel realisiert: Hausbus RS485 | | RS485-RS232 Koppler (Eigenbau aufgrund des Timings für die Send- und Receiveumschaltung) | | PC bei mir ein ITX-System mit Windows XP-Prof. (ca. 20Watt Leistungsaufnahme) XAMPP mit Perl-Modul (Webserver) | | Netzwerk (Ethernet und WLAN) | | Browser auf Clientsystem (Nokia N770, Home Theater PC, Bürorechner, etc..) Das XAMPP-Paket beinhaltet alle wesentlichen Webserversachen "out of the box". Es braucht nichts installiert werden, sondern lediglich ein Konfigurationsskript einmalig gestartet werden. Die Kommunikation mit dem Hausbus erfolgt über wenige universelle Perl-Skripte (cgi-Scripte). Diese Skripte werden über URL-Parameter direkt mit BUS-Kommandos bedient: z.B. http://itx/hausbus/rs485_command.pl?device=220&befehl=13&wert1=2& etc .... Die Perlskripte stellen also die Verbindung zwischen Webseite und RS232 her. Da sie universell gestaltet sind, kann die gesamte Intelligenz in die Webseite gelegt werden. Somit kann von beliebigen Webseiten (Normale HTML-Seiten oder zur Laufzeit mit PHP generiert spielt keine Rolle) auf das Hausbussystem zugegriffen werden. Ich nutze es vornehmlich zur Lichtsteuerung, Konfiguration aller Hausbusmodule, Temperatursteuerung und zur Datenerfassung. Sonderskripte erlauben eine komplette Inventur des Hausbussystems mit Rückmeldung aller Firmwareversionen und Betriebszustände innerhalb von wenigen Sekunden. Grüße --- Jürgen
20W ist etwas viel. Ein Beck Singlechip PC macht dasselbe mit weniger als einem Watt.
@sechsdreizwei Der PC hat bei mir aber noch einige weitere Funktionen: - Mediaserver für Musik und Filme (1x 2,5" 60GB HDD + 2x 3,5" 500GB HDD) - Webserver für die Haustechnik - Datensicherungsserver Ich bin einmal gespannt, wie du das mit weniger als 1 Watt hinbekommen willst? Ursprünglich hatte ich ein NAS-System umfunktioniert ... das hatte ca. 17 Watt, war allerdings nicht sonderlich leistungsstark und nicht so flexibel. Grüße -- Jürgen
Aha. Ok. Das wird schwierig. Die Frage ist, soll man immer, ueber die Lebensdauer einen Hauses einen PC mitlaufen lassen ? Egal, dieses Thema wird in Zukunft noch an Fokus gewinnen.
Ich bin der Meinung, dass die gesamte Haustechnik auch autark ohne PC auskommen muß! Der PC ist bei mir rein als Benutzerinterface zu sehen, also als Ergänzung zu normalen Tastern. Komplexere Funktionen werden bei mir über "Makromodule" ausgeführt, welche Bestandteil der normalen Haustechnik sind. D.h. dafür ist ebenfalls kein PC notwendig. Einzig die Konfiguration der Module erzwingt einen PC .... Grüße -- Jürgen
@Jürgen: "Der PC hat bei mir aber noch einige weitere Funktionen: - Mediaserver für Musik und Filme (1x 2,5" 60GB HDD + 2x 3,5" 500GB HDD) - Webserver für die Haustechnik - Datensicherungsserver " Wie willst Du da auf nur 20 Watt kommen? Stell doch mal bitte Deine Komponenten hier ein, also auch das ITX Board und Netzteil. Die ähnlichen Systeme, die ich so kenne, brauchen als Minimum 40 Watt. Das würde mich jetzt echt interessieren!
"(1x 2,5" 60GB HDD + 2x 3,5" 500GB HDD)" Habe mal auf die Schnelle gesucht und keine Platte gefunden, die unter 5 Watt in Ruhe braucht. Alte 60er kommen nicht unter 8 Watt, die 500er sicherlich auch nicht deutlich. Die 20 Watt sind also schon komplett für die Platten weg. Ich denke, Deine Rechnung geht vorne und hinten nicht auf. Welche Komponenten verwendest Du?
John wrote: > "(1x 2,5" 60GB HDD + 2x 3,5" 500GB HDD)" > > > Habe mal auf die Schnelle gesucht und keine Platte gefunden, die unter 5 > Watt in Ruhe braucht. Alte 60er kommen nicht unter 8 Watt, die 500er > sicherlich auch nicht deutlich. Die 20 Watt sind also schon komplett für > die Platten weg. > Ich denke, Deine Rechnung geht vorne und hinten nicht auf. Prinzipiell müssen aber nicht alle Platen laufen. Ich nutze auch ein ähnliches System und das ganze ist so konfiguriert dass die Platten nach 15 Minuten in Standby gehen. Aber drotzdem kommt das System selbst unter minimal last nur knapp unter 50 Watt. (ITX Jetway Board mit 1.1Ghz, 2xHDD à 250GB, TV Karte, Gbit Lan, Netzteil ist ein altes 300Watt ding) Das ganze will ich demnächst noch mit nem kleinen Webserver auf ENC28J60 Basis steuern... weil 50Watt sind nicht unbedingt wenig. Somit könnte man den Strombedarf auf bis zu weit unter 10 Watt reduzieren, der zugriff wird zwar ein wenig komplexer und dauert länger aber das ist bares Geld. (aus dem Standby ist das System in knapp 10 Sekunden da)
wenn auf pc mit webserver würde ich entweder cgi oder phyton als mittel der wahl nehmen ....
Wir haben mal ein Win2k und ein Linux auf einem mini ITX gemessen. Der Stromverbrauch war beim Win2k und einer 60er 3.5er Platte bei 40W. Dasselbe System unter Linux zog nur 8.5W im Leerlauf. Scheint an dieser Stelle, dh dem Idle Prozess ging das Linux in den Powersave, waehrend das Win2k irgendwas gepollt hat. Daher sollte man sich das System genauer anschauen, ev ein WinXP Embedded verwenden, wo man das alles konfigurieren kann.
Hallo Leute, die Geschichte mit den 20 Watt kommt hin ... naja 22 Watt ;-) Die 2,5" Platte läuft permanent, die beiden großen werden nach einer gewissen Zeit abgeschaltet und erst bei Zugriff wieder aktiviert (ansonsten pro Platte ca. 10 Watt zusätzlich). Wichtig ist auch ein vernünftiges Netzteil. Ich hatte es anfangs mit einem normalen PC-Netzteil betrieben, was gute 10Watt zusätzlich verheizt! Mit optimierten Komponenten kann man hier einiges einsparen. Artikel-Nr.: PICOPSU-120 von Reichelt als Spannungsregler in Kombination mit dem Schaltnetzteil SNT MW60-12 (ebenfalls Reichelt). Grüße -- Jürgen
Nun koennt man sich ueberlegen, die Festplatte durch ein Flash zu ersetzten, da ja nichts geschrieben werden muss ...
Ich habe schon ein paarmal mit dem Gedanken gespielt, auf einer Selbstbauschaltung einen Web*client* laufen zu lassen, der mit dem Internet verbunden ist und regelmäßig die aktuellen Daten in eine Applikation spielt, die bei einem Webhosting-Anbieter läuft. Quasi automatisiert in ein Formular auf der Homepage einträgt. Zum Umsetzen bin ich bisher nicht gekommen. Meiner Ansicht nach hätte der Ansatz aber folgende Vorteile: * Kaum Speicherplatz in der Hardware nötig (außer RAM für den TCP/IP-Stack und die Abwicklung des HTTP-Krams) * Kein 24/7 mitlaufender PC, Internetanbindung der Hardware beispielsweise über einen eh vorhandenen DSL-Router möglich. * Flexibilität bei der Gestaltung (grafisch, Bedienung...) der Seiten * Daten lassen sich, ggf. paßwortgeschützt, weltweit von jedem internetfähigen Rechner anschauen. Beim eigenen Server macht einem da mal die Routerkonfiguration nen Strich durch die Rechnung, wenn man mit der ganzen Konstruktion mal in ein Uninetz oder sonstwohin umzieht und auf den Router keinen Einfluß hat. Nachteile: * Latenzzeit wird etwas größer (muß nicht so tragisch sein) * Bedieneingriffe auf diesem Wege werden aufwendiger zu realisieren und wenn dann nicht so schön zu bedienen. Was meint ihr, sollte man die Idee weiterverfolgen?
Für PHP braucht man keinen Server wie Apache. Also PHP kann selbst als Server fungieren (s.o.). Ich habe in Setuproutinen oft PHP mitinstalliert und nachher wieder gelöscht. Mit 50kByte in der Grundversion mit TCP kommt man hin. Es gibt nix knapperes falls man ein Sript braucht, höchstens vielleicht JavaScript das kann aber noch weniger. Die Idee ist in meinen Augen gut.
Hallo, sehr interessantes Thema. Gibt es schon einen lauffähigen Quellcode, denn man sich anschauen kann ? Schöne Weihnachten
PHP, CGI, JScript usw. taugen nicht. Tomcat mit Java Server Pages is cooler, weil der Browser nicht ständig auf Statusänderungen oder Fortschrittsanzeigen pollen muss, um aktuelle Daten anzuzeigen. Java ist im Gegensatz zu Vorgenannten Multi-Threading-fähig ist. Das macht die Implementierung seehr angenehm.
@Zimmermann: Wenn man keine Ahnung hat... Selten so einen Blödsinn gelesen, wie Du geschrieben hast.
Hi, warum so kompliziert? Ich hab' vor längerer Zeit mal den I²C an meinem PC (war am Parport) webfähig gemacht. Als "zwischenhändler" diente ein VB-Programm, das mit ein paar Tricks Konsolenfähig gemacht wurde (und dort dann die Ausgaben gemacht hat). Die Ausgaben wurden dann vom PHP-Script (das Resultat von Exec ist ein Array der Ausgaben) ausgewertet. Funktionierte sehr gut, wobei die Schnittstellenseite mittlerweile nur noch mit einer .NET-Sprache machen würde (weil da Konsolenprogramme native möglich sind). Grüße Chris
Zimmermann wrote: > PHP, CGI, JScript usw. taugen nicht. > Tomcat mit Java Server Pages is cooler, weil der Browser nicht ständig > auf Statusänderungen oder Fortschrittsanzeigen pollen muss, um aktuelle > Daten anzuzeigen. Stephan wrote: > @Zimmermann: > > Wenn man keine Ahnung hat... > > Selten so einen Blödsinn gelesen, wie Du geschrieben hast. Er meinte doch wahrscheinlich ein Applet? Java Server Pages braucht man dazu dann aber nicht (unbedingt) - das Applet kann sich doch mit jedem x-beliebigen Serverprogramm (auf dem Webserver von dem das Applet kommt) verbinden.
@Stephan
mach doch mal ein PHP-Script mit Multithreading du Spezi. Da bin ich
sehr gespannt - ach nee eigentlich nicht, ich kenn das Ergebnis schon...
>Er meinte doch wahrscheinlich ein Applet?
Neiin - ich meinte tatsächlich das was ich schrieb: serverseitiges Java!
Die Servlets können direkt ohne Umweg mit dem Hausbus sprechen und die
gewonnenen Daten zurückliefern.
>Als "zwischenhändler" diente ein VB-Programm, das mit >ein paar Tricks Konsolenfähig gemacht wurde Java seien besser, weil für alle Plattformen verfügbar und frei und kostenlso.
@Cris kannst du dein Projekt mal näher erklären? Ich bitte euch, hier nicht so agressiv zu schreiben. Bleiben wir hier doch sachlich. Frohes neues Jahr
Hi, ich habe eine Siemens Logo für Rollläden und Fenster, eine Regenwasserpumpe, Heizungspumpen und -fühler, deren Anlagenzustände ich alle gerne auf einem Webserver visualisieren würde. Ich lese mal weiter mit... Gruß JAD
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.