Hallo, ich hatte vor über 10 Jahren einen Webserver mit einem Mikrocontroller + Lantronix X-Port entwickelt. Damals nutze ich die intelligente Funktion des XPORT nicht, ich habe alles im Atmel gehandelt (Daten 1:1 durch den X-Port durchgeschleift). Damals alles auf HTML-Basis. Zugriff übers Internet ging über einen Dienst, die Zuweisung vom URL zu meinem Webserver (aktuelle IP-Adresse), wurde über einen Dienst mit der Fritzbox aktiviert. Wie das Gaze heißt, weiß ich gerade nicht, der Dienst wurde aber irgendwann vom Anbieter deaktiviert. Ging eigentlich relativ gut. Nun möchte ich einen neuen Webserver machen. Mit X-Port und STM32. Zugriff übers Internet soll auch wieder möglich sein. Das ganze Handling würde ich am liebsten auch wieder komplett im STM32 machen. Ich kann nur C und etwas HTML. Zu Beginn würde ich mal eine primitive Seite mit folgendem Inhalt erzeugen: * Button "LED ein" * Button "LED aus" * Bild mit aus- oder eingeschalteter LED als Feedback meiner Elektronik Fragen: Ist es sinnvoll, das Ganze wieder mit HTML zu machen? Oder gibt es da sinnvollere Varianten, die nicht all zu kompliziert sind? Was muß ich machen, daß die Seite wieder übers Internet aufgerufen werden kann? Leider fehlt mir des genaue Begriff der Dienstleistung, so daß ich nicht googeln kann. Die Fritzbox hat bei der täglichen Zuteilung der neuen IP jeweils den Dienst benachrichtigt, wie ein Webserver erreichbar ist. Bin eher Hardwareentwickler, daher sind mir die Begrifflichkeiten nicht geläufig...
Dyndns und portforwarding. Oder gar exposed Host.
So ganz steige ich nicht durch, was wo wie laufen soll. Ein kleine Strukturzeichnung wäre nicht schlecht. Was ist ein X-Port? Ein Protokoll, oder eine STM-Hardware Kommunikationseinheit, oder ein Software-Stack?
PittyJ schrieb: > So ganz steige ich nicht durch, was wo wie laufen soll. > > Ein kleine Strukturzeichnung wäre nicht schlecht. > > Was ist ein X-Port? Ein Protokoll, oder eine STM-Hardware > Kommunikationseinheit, oder ein Software-Stack? Wenn Du zu morgendlicher Stunde eh noch nicht "durchsteigst" und auch keine Ahnung von den verwendeten Teilen hast - warum antwortest Du dann? (ernstgemeinte Frage)
PittyJ schrieb: > Was ist ein X-Port? Ein Protokoll, oder eine STM-Hardware > Kommunikationseinheit, oder ein Software-Stack? Lantronix X-Port Google sagt (erster Treffer): https://www.lantronix.com/products/xport/
Atto Admin schrieb: > Dyndns Genau den Begriff habe ich gesucht. Danke! Das wäre schon mal geklärt. Dann ist noch die Frage offen, ob die Erstellung mit HTML heutzutage noch sinnvoll ist.
Jonas schrieb: > Dann ist noch die Frage offen, ob die Erstellung mit HTML heutzutage > noch sinnvoll ist. Womit sonst? Das versteht jeder Browser.
Noch was vergessen: STM32 haben so viel "Bumms" (inklusive der dafür notwendigen integrierten Bausteine), dass sie sich auch selber um den Netzwerkverkehr kümmern können.
Jonas schrieb: > Zugriff übers Internet soll auch wieder möglich sein. Ich nutze den Service von afraid.org. Da reicht es, einen String hinzusenden, um dem DNS Server die neue IP mitzuteilen. Hier macht das ein kleines Skript auf dem Server, aber das kann auch jeder STM32. > Dann ist noch die Frage offen, ob die Erstellung mit HTML heutzutage > noch sinnvoll ist. Warum nicht? Schlimmstenfalls noch ein wenig Javascript, das verlagert Rechnerei auf den Client und spart dir Rechenzeit (falls nötig) auf dem STM32. Komplizierter wird Secure HTTP, aber evtl. finden sich da Beispiele im Netz.
Ich würde heute keinen X-Port mehr benutzen, sondern einen Mikrocontroller mit integrierter Netzwerk-Schnittstelle. Das ist viel komfortabler, schneller und billiger. Mit erstaunen habe ich festgestellt, dass aktuelle Web Browser eingebettete Dinge (wie Bilder, CSS, Skipte) nicht mehr zuverlässig laden, wenn der Server nur eine einzige gleichzeitige Verbindung zulässt. Meine damaligen Versuche mit X-Port waren allerdings auf eine Verbindung beschränkt (ich weiß nicht ob das heute noch so ist). Aufgrund der Preise läuft es bei mir inzwischen immer auf ein ESP8266 Modul hinaus, auch wenn ich eigentlich Kabel gegenüber WLAN bevorzuge. Der Nachfolger ESP32 kann prinzipiell auch Ethernet, leider gibt es aber nur wenige Boards mit entsprechendem Anschluss. Ob für deine Anwendung HTML Sinnvoll ist, weiß ich nicht. Wenn du damit Webseiten erzeugen willst, dann ist HTML auf jeden Fall immer noch das aktuelle Mittel der Wahl. Schau dir das mal an: http://stefanfrings.de/esp8266/index.html
Jonas schrieb: > Ist es sinnvoll, das Ganze wieder mit HTML zu machen? Einen Webserver ohne HTML? Kann man machen, nur wird es dann kein Web. Denn zum Web wird es durch Hyperlinks. Und die sind nun mal HTML.
Axel S. schrieb: > Einen Webserver ohne HTML? Kann man machen, nur wird es dann kein Web. > Denn zum Web wird es durch Hyperlinks. Und die sind nun mal HTML. Rein theoretisch könnte er auch andere Dokument-Formate benutzen, zum Beispiel PDF. Das unterstützt auch Hyperlinks. Sehr praktisch finde ich, dass die Web browser inzwischen alle SVG darstellen können. Damit ist das Generieren von Diagrammen einfach, man braucht keine Grafik-Bibliothek. Die Grafiken können Bestandteil des Seitenquelltextes sein, oder als separate *.svg Datei wie andere Bilder nachgeladen werden. https://wiki.selfhtml.org/wiki/SVG
Wie viel Stunden gebt ihr dem Konstrukt bis es bei shodan auftaucht?
Das solche Sachen nicht direkt ins Internet gehören, halte ich für eine Selbstverständlichkeit. Aber darüber kann man nicht diskutieren. Wer das machen will macht es. Bedenkenträger sind hier unerwünscht.
HTML ? Nun, das - HTML macht die statische Seite. - CSS macht die formatierung - Javascript macht dynamische Geschichten - AJAX mach das Nachladen von content zur Laufzeit der Seite. Wobei das untere jeweils auf der Summe der Oberen aufbaut. Normalerweise, auf einem normalen Server, laesst man ein php laufen, welches die Seiten, resp, den serverbezogenen Content, wie Datenbank Abfragen bereitstellt. Auf einem Controller nimmst du deine eigene Controller Sprache, und lieferst controllerspezifischen Inhalt, zB Messwerte, Grafiken. Dazu musst du irgendwelche Anweisungen in den Seitencode einfuegen, welche der Seiteninterpreter versteht. Ich empfehle einen Blick in die Funktionsweise und den Aufbau von php.
Pandur S. schrieb: > Normalerweise ... laesst man ein php laufen PHP halte ich nicht mehr für Zeitgemäß, obwohl ich es früher auch gerne selbst verwendet habe. Ich glaube NodeJS und darauf aufbauende Frameworks sind gerade angesagt.
patch hack patch? Nagut, sowas wie FHEM nutzt das afaik auch noch. Auf keinen Fall Portfreischaltungen, siehe z.B. https://forum.iobroker.net/topic/17258/hinweis-gefahren-durch-port-freischaltungen Es gibt sichere VPN oder IoT Cloud Lösungen. Relativ einfach ist etwas wie ioBroker mit der Cloud zu Nutzen, da kann man einfach eine HTML Visu erzeugen (VIS Adapter) und auf die auch von extern zugreifen. Den Controller im LAN dann per MQTT oder einfaches HTML get/post, native TCP oder UDP steuern. Per MQTT gehen dann auch die eigenen Bastellösungen mit ESP oder STM32 mit LAN. Hardware gabs mal günstig in Form der Nucleo F7 Boards mit Ethernet, aber wegen Chipkrise werden mittlerweile auch diese geschlachtet und sind größtenteils ausverkauft. Bei Ali gibts aber sicher noch F407 Boards die man durch anklemmen eines LAN8720 Phy Boards auch relativ einfach ins heimische Netz bekommt.
Der Thread ist schon zwei Tage alt, aber trotzdem: > Oder gar exposed Host. Nö, auf keinen Fall wenn man es nicht unbedingt braucht. Wieso sollte man auf die nützliche Filterfunktion eines Routers verzichten? Das macht keinen Sinn wenn man nur etwas HTTP will. Wenn ich überlege, sowas auf einem STM32 zu machen, dann würde ich mir einen Controller suchen, der LAN beherrscht. Nicht die Notlösung über den XPort mitschleppen, nur weil der vorher genutzte AVR nicht für LAN gebaut ist. Und ohne HTML geht es nicht, das ist nunmal die "Sprache" des Internets. Sicherlich könnte man es auch auf Zwang umgehen und irgendwas anderes (sowas wie Flash früher) zurechtgurken... aber sinnvoll ist das auch nicht. Sowas wie PHP steht auf einem Controller überhaupt nicht zur Debatte. Der Controller kann kein PHP ausführen solange man da keinen PHP-Interpreter für schreibt. Man muß das empfangene HTTP-Formular mit dem Controller schon selbst zerpflücken. Man darf da auch nicht zu komplex denken. Man bekommt vom Client eine "Textdatei" und muß darauf mit dem gewünschen HTML-Text antworten. Mehr ist es im Grunde nicht, die Umsetzung von TCP/IP auf so einem Controller ist das eigentliche Problem, oder die grundlegenden Netzwerkfunktionen.
Nicht ganz. Der Server soll ja etwas zur Verfuegung stellen. zB Messwerte, eine Graphik von Messwerten, einen Audio- oder Videostream. Dazu schreibt man eine Webseite, welche per irgendwelchen Token diese Daten waehrend der Auslieferung ansaugt und in die ansgelieferte Seite einfuegt. Der ausliefernde Task parst also die Seite und fuellt was auch immer ein. Meine erwaehnung von php war um das Konzept zu zeigen. Das kann viel einfacher sein. zB ein <?aaa %data ?> oder was auch immer.
Stefan ⛄ F. schrieb: > NodeJS und darauf aufbauende Frameworks sind gerade angesagt "angesagt" ist (meine meinung) das richtige wort. wird halt grad als sau durchs dorf getrieben. ich persönlich würde mir das nicht antun, sondern lieber bei etwas bewährtem bleiben. auch wenn ich für altmodisch gehaltem werde... und ja, meine tastatur ist kaputt
> Nicht ganz. Der Server soll ja etwas zur Verfuegung stellen. > zB Messwerte, eine Graphik von Messwerten, einen Audio- oder > Videostream. Das reine zur-Verfügung-Stellen ist kein Problem. Das sind nur Daten, die man aus einer Quelle liest und passend adressiert ins Netzwerk schiebt. Die Probleme fangen an, wenn ich z.B. eine Grafik mit irgendwelchen Messwerten aus dem Prozessor quetschen möchte. Da muß man halt die komplette Grafik selbst generieren und die Bilddaten (evtl. PNG) daraus erzeugen. Das ist auf einem µC evtl. ein Problem, könnte man aber vielleicht auf den Client auslagern. Sprich man liefert dem Client nur die Daten und irgend ein Programm auf dem Client erzeugt daraus die Grafik. Einen Audio- oder Videostream bekommt man nur aus dedizierter Hardware, für den Prozessor ist das ein Durchreichen, evtl. mit Zwischenspeicherung... Da wird dann nicht die Rechenleistung zum Problem, sondern die Datenmenge. > Meine erwaehnung von php war um das Konzept zu zeigen. Das kann > viel einfacher sein. zB ein <?aaa %data ?> oder was auch immer. Ist schon viel zu kompliziert gedacht. Man ist da völlig flexibel wie man sein HTML erzeugt oder formatiert. Man muß sich nur an das HTML ansich halten, so daß der Browser es versteht. Aber serverseitig gibts kein <?blah> oder was auch immer. Der Browser schickt Dir einen HTTP-Request und man muß mit einer HTTP-Response darauf antworten. https://www.tecchannel.de/a/hypertext-transfer-protocol,401210,4 Wie du das auf dem µC anstellst ist ganz allein dein Ding. Man bekommt da auch keine Hilfen. Kein Framework, keine Interpretersprache.
Jonas schrieb: > der Dienst wurde aber irgendwann vom Anbieter deaktiviert. Dyndns wurde irgendwann blöd und auch ich bin dann zu anderen Anbietern gewandert. Es gibt da einige, auch kostenlose. Jonas schrieb: > Ist es sinnvoll, das Ganze wieder mit HTML zu machen? Oder gibt es da > sinnvollere Varianten, die nicht all zu kompliziert sind? Wenn Du auf Deinem Endgerät (Client) ein Browser nutzen möchtest bzw. unterschiedliche Clientplatformen benutzen möchtest, ist Browser und dann auch HTML das Mittel der Wahl. Auch wenn Du Buttons und Bilder haben möchtest. Der Router sorgt dafür, dass die Pakete bei Deinem Server landen. Für die Kommunikation reichen Sockets. Der Webserver nimmt Dir nur diese Arbeit und noch etwas mehr ab. Jonas schrieb: > Die Fritzbox hat bei der täglichen Zuteilung > der neuen IP jeweils den Dienst benachrichtigt, wie ein Webserver > erreichbar ist. Tägliche Zuteilung sollte aber mittlerweile gegessen sein. Zumindest die beiden Großen trennen mittlerweile nach 180+ Tagen. Matthias S. schrieb: > Ich nutze den Service von afraid.org. Da reicht es, einen String > hinzusenden, um dem DNS Server die neue IP mitzuteilen. Das geht auch bei allen anderen so. Kümmert sich aber idR. der Router drum. Gruß Jobst
Purzel H. schrieb: > Dazu schreibt man eine Webseite, welche per irgendwelchen Token diese > Daten waehrend der Auslieferung ansaugt und in die ansgelieferte Seite > einfuegt. Nein. HTML-Seiten auf dem Mikrocontroller zu erzeugen ist einfach nur umständlich und lahm. Der Aufbau ist ein anderer: Zum einem liefert der Mikrocontroller einfach nur statische Dateien aus, die man zweckmäßigerweise auch über HTTP updaten kann. Parallel dazu stellt der Mikrocontroller auf einer bestimmten URL eine kleine API zur Verfügung, auf der ein Client z.B. die Temperatur als JSON oder im Extremfall als einzeilige Textdatei abholen kann. Der Browser zieht sich dann einfach nur die HTML-Seiten, darin befindet sich ein wenig Javascript, das dann über die API-URL vom Mikrocontroller die Messwerte abholt und dann die tollsten Grafiken etc. malt. D.h. das aufbereiten der Daten findet im Browser statt. Dort ist Rechenzeit quasi grenzenlos vorhanden. Das ganze kann dann soweit gehen, dass die ganze HTML-Anwendung auf einem Server im Internet (oder im lokalen Netz) liegt, und die HTML-Datei vom Mikrocontroller nur eine kleine "Boot-HTML" ist, die die HTML-Anwendung eben von einem anderen Server nachladen lässt. Das hat den Vorteil, dass der Mikrocontroller nur kleine Datenmengen liefern muss, und ein Update der HTML-Anwendung nicht auf dem Mikrocontroller erfolgen muss, sondern auf dem Server vom dem der Mikrocontroller den Browser nachladen lässt.
Man kann sich das Leben auch einfacher machen. Einen WizNet W5500 mit dem MC verbinden. Und schon ist auch ein AVR netzwerkfähig. Ein Webserver ist ganz einfach zu programmieren, wenn man auf den graphischen Schnickschnack verzichtet. Der Webserver gibt letztlich eine ganz simple Textdatei aus. Das oben genannte Beispiel läßt sich umformulieren in eine Webseite mit zwei Links "LED einschalten" und "LED ausschalten" plus einer Zeile mit "Status: die LED ist EIN". Und schon ist es nur noch reiner Text. 😀 Der andere - bereits auch schon angesprochene - Weg wäre, einen Standard-Web-Server zu nehmen, der seinerseits den MC abfragt und dann die Meßwerte aufbereitet; das kann durchaus auch während der Seitenausgabe geschehen, sofern die Kommunikation zwischen Server und MC nicht länger als ein paar Sekunden dauert. Der Vorteil an diesem Ansatz wäre, daß hier viele verschiedene Hochsprachen zur Verüfung stehen (oder auch komplette Frameworks), wodurch sich nahezu beliebig komplexe Seiten erstellen lassen, die mit einem MC niemals möglich wären. Und durch die Verwendung von Standardlösungen gibt es unzählige Komponenten, Bibliotheken, Beispiele usw., die unheimlich viel Zeit einsparen. Für den dritten Weg, einen umfangreicheren Webserver auf dem MC zu programmieren, wäre ich einfach zu faul.
Jobst M. schrieb: > Kümmert sich aber idR. der Router > drum. Viele der Plastikrouter sind da unflexibel und haben nur ein paar vorverdrahtete Anbieter für dyn. DNS. Aber da bei mir sowieso ein Server arbeitet, macht der das im Hintergrund gleich mit. Mein kleinster Webserver ist ein ESP8266 mit einem ATTiny 4313 :-P
:
Bearbeitet durch User
Kann man nicht HTML-Seiten in separater Datei im Projektpfad speichern und mit dem C-Code darauf zugreifen? Die Implementierung einer HTML-Datei im C-File ist extrem unübersichtlich, wenn im String z.B. " Zeichen enthalten sind. Die muß man ja alle mit \" ersetzen. Ich würde die Zeichen der Datei Zeichen für Zeichen auslesen und bei einem " einfach \" ersetzen. Für auszugebende variable Texte wie z.B. Spannungswerte würde ich eine Kennung ergänzen, an deren Stelle ich dann den anzuzeigenden Wert ersetze. In meinem Beispiel wäre die Kennung xxx1.
1 | <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
2 | <html>
|
3 | <head>
|
4 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
5 | <title>Meldung</title> |
6 | |
7 | <body text="#000000" bgcolor="#FF6666" link="#0000EE" vlink="#551A8B" alink="#FF0000"> |
8 | <font face="Arial,Helvetica">Parameter1 = xxx1</font> |
9 | </body>
|
10 | </html>
|
Würde das prinzipiell gehen?
Ditus schrieb: > Die Implementierung einer > HTML-Datei im C-File ist extrem unübersichtlich, wenn im String z.B. " > Zeichen enthalten sind. Die muß man ja alle mit \" ersetzen. Ich würde > die Zeichen der Datei Zeichen für Zeichen auslesen und bei einem " > einfach \" ersetzen. Naja, ob das so sinnvoll ist, muss jeder für sich entscheiden. Mir ist es lieber, wenn da nicht noch ein extra Softwarestück sich um die " kümmern muss. 'Extrem unübersichtlich' finde ich das nicht. Ditus schrieb: > Würde das prinzipiell gehen? Kann man so machen, aber statt einem dicken Textblock kann es platzsparender sein, wenn man Dinge, wie z.B. Header und Footer wiederverwenden kann. Strings hintereinander zu senden und Variable einfach dazwischenzuschieben, ist auch nicht schwierig.
die Cortex-M haben auch genug Power für mehrere TCP Verbindungen um damit Websockets zu realisieren. Dann kann der HTML Code auch JS enthalten der die Daten per Websocket geschickt bekommt und mit schönen Widgets darstellen kann.
Hi, ich würde einen Webserver auch wenn er nur eine Seite HTML ausliefert nicht direkt in das Internet hängen. Ich betreibe auch Webserver im Internet und wenn ich den traffic sehe den die Bots erzeugen und was die alles probieren. Ich würde es nicht tun. Lieber einen gut gesicherten Server mit HTTPS der die Daten vom MC geliefert bekommt. Ein VPS Server kostet 1€ im Monat + Domain wenn man will. MC mit MQTT der durch eine VPN oder SSH Verbindung vom Router zum Webserver die Daten schickt. Dann auf dem Server die Daten in eine Datenbank und gut is. Da kannst du dir Entspannt was für die Darstellung aussuchen. So würde ich das machen. Dann kann der MC auch recht schmal dimensioniert werden. Aber auch die Nutzung und Sammlung der Daten von mehreren MCs ist einfach umzusetzten. Außerdem ist man von Spezialisierten Dienststleistern unabhängig. Klein anfangen und es erst mal in den eigenen vier Wänden testen, dann kann man es umziehen.
Ich hätte keine Probleme damit, einen einfachsten AVR-Webserver direkt ins Netz zu stellen. Damit der für irgendwas zur Gefahr werden kann, muß er die Angriffe erstens verstehen (die meistens gegen unsichere Web-Anwendungen oder Software auf dem Server gefahren werden) und zweitens imstande sein, den Angriff auch auszuführen. Das fehlt auf einem Mini-AVR-Webserver alles, der hat kein Betriebssystem was man angreifen könnte, da läuft kein MySQL, kein SMTP-Server, keine Konsole... Da hätte ich vor stärkeren IoT-Geräten im Netz mehr Respekt, die können meistens mehr als sie müssten. Deren Controller/SoC sind oft stark genug, daß mindestens irgend ein Linux-Derivat drauf läuft, mit dem sich Angriffe gegen das eigene Netz ausführen lassen könnten wenn jemand darauf Zugriff bekommt.
Ditus schrieb: > Kann man nicht HTML-Seiten in separater Datei im Projektpfad speichern > und mit dem C-Code darauf zugreifen? Man kann dem MC z.B. eine SD-Karte spendieren und darauf dann die statischen Teile der Webseite ablegen. Das hat den Vorteil, daß sich die statischen Teile gemütlich an einem PC erzeugen und auf die SD-Karte kopieren lassen. Nachteil ist natürlich, daß die Hardware etwas komplexer wird und der Code natürlich auch. Ben B. schrieb: > Da hätte ich vor stärkeren IoT-Geräten im Netz mehr Respekt Ich fürchte auch, daß wir irgendwann alle draufgehen werden, weil irgendein Dödel vergessen hat, den Webserver im Stromzähler abzuschalten und der mit Standard-Paßwort läuft.
Na davon werden wir nicht gleiche alle draufgehen, aber mich würde es nicht im geringsten wundern, wenn sich dann irgendwelche Dödels 'nen Spaß draus machen, solche Dinge zu manipulieren oder eine große Anzahl solcher Geräte für eigene Zwecke missbrauchen. Für sowas wie DDOS-Angriffe braucht das angreifende System weder Intelligenz noch Rechenleistung.
Ditus schrieb: > Kann man nicht HTML-Seiten in separater Datei im Projektpfad speichern > und mit dem C-Code darauf zugreifen? Der Mikrocontroller hat keinen Zugriff auf deine Quelltexte. Bei ESP Modulen ist der übliche Weg, ein Dateisystem im Flash Speicher anzulegen und die Datei dort abzulegen. Darauf hat dir Firmware dann auch Zugriff. Ditus schrieb: > Für auszugebende variable Texte wie z.B. Spannungswerte würde ich eine > Kennung ergänzen, an deren Stelle ich dann den anzuzeigenden Wert > ersetze. Da wird schnell kompliziert, insbesondere wenn die Datei nicht ins RAM passt. Machbar ist es, ich habe das mal auf einem ATmega644 gemacht. Dort habe ich die HTML Vorlage in relativ kleinen Stücken verarbeitet. An jedem Platzhalter oder nach Erreichen eines Limits, habe ich einen Schnitt gemacht.
MeinName schrieb: > Hi, ich würde einen Webserver auch wenn er nur eine Seite HTML > ausliefert nicht direkt in das Internet hängen. Ich betreibe auch > Webserver im Internet und wenn ich den traffic sehe den die Bots > erzeugen und was die alles probieren. Ich würde es nicht tun. Lieber > einen gut gesicherten Server mit HTTPS der die Daten vom MC geliefert > bekommt. Ein VPS Server kostet 1€ im Monat + Domain wenn man will. > > MC mit MQTT der durch eine VPN oder SSH Verbindung vom Router zum > Webserver die Daten schickt. Dann auf dem Server die Daten in eine > Datenbank und gut is. Da kannst du dir Entspannt was für die Darstellung > aussuchen. > So würde ich das machen. Das mit dem VPS-Server klingt sehr interessant. Was ist denn genau der Unterschied zu einem Webspace z.B. bei Domainfactory, wo man sich seine Homepage drauf laden kann? Ich habe eine private Internetseite dort. Vielleicht kann man diese ja dafür nutzen. Wie muß man die Internetseite aufbauen, damit variable Dinge vom MC angezeigt werden können? Und wie bringt man die Daten mit MQTT vom MC zu der Homepage? Fragt die Homepage den MC ab, wenn jemand auf der Homepage ist? Oder muß der MC immer zyklisch senden? Gibt es da einfache Beispiele? Ist vermutlich nicht wenig Arbeit, bis man sowas realisiert hat.
Dittus schrieb: > Wie muß man die Internetseite aufbauen, damit variable Dinge vom MC > angezeigt werden können? Mit AJAX: https://de.wikipedia.org/wiki/Ajax_(Programmierung) > Fragt die Homepage den MC ab Ja > Oder muß der MC immer zyklisch senden? Das geht nicht beim HTTP Protokoll. Es ist immer der Browser, der eine Kommunikation beginnt. In JavaScript kann man Timer benutzen, um das zu wiederholen. Meine Homepage benutzt AJAX um das Hauptmenü an der linken Seite nachzuladen: http://stefanfrings.de/ (Quelltext anzeigen) Das JavasScript dazu ist http://stefanfrings.de/navigation.js Ich benutze da noch eine ziemlich alte Methode von damals als die Seite neu war. Statt XMLHttpRequest bzw ActiveX benutzt man heute Ajax.Request. Das prinzip bleibt aber gleich. Falls du inm Log des Browsers eine Fehlermeldung mit dem Stichwort "CORS" bekommst, dann schau dort: https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing
Stefan ⛄ F. schrieb: >> Oder muß der MC immer zyklisch senden? > > Das geht nicht beim HTTP Protokoll. oder die Websockets, auch schon seit vielen Jahren in allen Browsern vorhanden, wenn man nicht noch mit Netscape unter OS/2 unterwegs ist. Das sollte aber nicht mehr der Maßstab sein :)
Jonas schrieb: > Ist es sinnvoll, das Ganze wieder mit HTML zu machen? Oder gibt es da > sinnvollere Varianten, die nicht all zu kompliziert sind? > Was muß ich machen, daß die Seite wieder übers Internet aufgerufen > werden kann? Du kaufst dir einen RaspBerry Pi, entweder den RPi 4 oder den RPi Zero 2 W. Dort installierst du dann den Apache2 Server (sudo apt-get install apache2 php mysql) und schiebst dann in das Verzeichnis /var/www/html deine Webseite. Du kannst dann über die Webseite und mittels PHP die I/O-Pins ein und aus schalten oder auch einen Temperatur/Luftfeuchte oder CO2-Sensor abfragen und auf deiner Webseite die Daten darstellen. Programmiere das nicht selbst, denn es gibt fertige und gute Mittel um das alles zu realisieren. Du kannst dort dann auch z.B. Nextcloud installieren oder Pi-Hole oder du kannst eine Webcam an den Pi antöpseln und dir das Bild oder den Videostream über das Internet auf dein Handy/Laptop streamen.
Nun habe ich noch Fragen zu DynDNS: Ich habe mir nun den Dienst https://dyndnsfree.de angeschaut. Anbei die Preisliste. Ich habe meinen Domain bei Domainfactory. Dann muß ich nach "Externe Domain" schauen, daß da nicht "nein" steht? Korrekt? Dann wäre es der Tarif mit 0,99 € pro Monat. Der Betrag ist vollkommen OK. Bei www.anydns.info/produkte.php kostet das preiswerterste Variante 1,50 € pro Monat, wäre auch in Ordnung. Hat jemand Erfahrungen mit den beiden Dienstleistern? Abgesehen von noch anderen, sind die beiden in der Fritzbox gelistet.
Jonas schrieb: > Hat jemand Erfahrungen mit den beiden Dienstleistern? https://freedns.afraid.org/ Läuft seit vielen vielen Jahren ohne jeden Schluckauf. Kannst dort einen Namen unter einer deren kostenlosen Domains nehmen, und per CNAME eine subdomain deiner domainfactory-domain dahin zeigen lassen.
Wenn Du bereits eine Domain hast, kannst Du Dir auch ein Quasi-DynDNS-System selbst stricken. Ich habe sowas zum Testen mehrfach gemacht um anderen den Projektfortschritt zu demonstrieren oder einen Testbetrieb auf dem Heimserver zu ermöglichen. Dazu einfach in einem Frame auf Deine aktuelle IP umleiten, die einem Script auf dem Domain-Server mitgeteilt wird wenn sie sich ändert. Eine einfache Weiterleitung ginge auch, dann erscheint halt die IP in der Adresszeile, wenns nicht stört dann kein Problem, bei HTTPS kann sein, daß es gar nicht als Frame geht bzw. ich habe auf meinem Heimserver sowieso nur ein selbstsigniertes Zertifikat, was nicht ohne Ausnahmeregel akzeptiert wird. Ist ein DynDNS für Arme, funktioniert aber sehr gut solange man nur HTTP(S) will, weitere Dinge wie eMail oder irgendwelche anderen Anwendungen gehen aber nicht so einfach.
Εrnst B. schrieb: > https://freedns.afraid.org/ > > Läuft seit vielen vielen Jahren ohne jeden Schluckauf. ACK Hier auch. Gruß Jobst
STK500-Besitzer schrieb: > Noch was vergessen: > STM32 haben so viel "Bumms" (inklusive der dafür notwendigen > integrierten Bausteine), dass sie sich auch selber um den > Netzwerkverkehr kümmern können. Was taugen eigentlich die IP-Stacks dafür? Fallen die gleich um wenn man die mal etwas anpustet, die Leitung Schluckauf hat, die Pakete ein klein wenig anders aus sehen wie das was gängige Linux und Windows Kisten so produzieren?
Stacker schrieb: > Was taugen eigentlich die IP-Stacks dafür? Welche sind denn "die"? Mein Eindruck von Adam Dunkels µIP und lwIP ist ein guter.
Mit Bedienung von Anlagen und Anzeige von Daten über beliebige Browser habe ich mich auch schon lange beschäftigt und es funktioniert auch recht gut. Da könnte ich auch einige gute Tips geben. Mir stellen sich hier aber einige Fragen: Warum muss der Webserver unbedingt auf einen Mikrocontroller? Mit einem Raspi kann man fertige und ausgefeilte Webserver wie lighttpd nutzen und sich softwaremäßig voll auf Bereitstellung der benötigten Dateien konzentrieren. Wozu soll es gut sein, eine technische Anlage ins Internet zu bringen? Damit jeder kleinere Möchtegern-Hacker damit rumspielen kann? So etwas gehört ins lokale Netz, und wenn man selbst aus aller Welt darauf zugreifen will, gibt es dafür VPN.
Jobst Q. schrieb: > Wozu soll es gut sein, eine technische Anlage ins Internet zu bringen? Sehr gute Frage.
Hi, unabhängig vom Sicherheitskonzept: Tue dir selbst einen Gefallen und nehme einen ESP32. MfG, Ben
Stacker schrieb: > Was taugen eigentlich die IP-Stacks dafür? lwIP steckt in Unmengen von Industrie und Consumerprodukten, kann also so schlecht nicht sein.
Johannes S. schrieb: > Stacker schrieb: >> Was taugen eigentlich die IP-Stacks dafür? > > lwIP steckt in Unmengen von Industrie und Consumerprodukten, kann also > so schlecht nicht sein. So wie Windows auch auf vielen Geräten in der Industrie läuft?
en B. schrieb: > Wenn Du bereits eine Domain hast, kannst Du Dir auch ein > Quasi-DynDNS-System selbst stricken. Mir ist es lieber, wenn ich einen Dienst nehme, der in der Fritzbox bereits vordefiniert ist. Das ist weniger Streß für mich, das ist mir die monatliche Gebühr wert. Ich denke alles andere kostet für mich viel Zeit. Nochmals die Frage: Hat jemand Erfahrungen mit folgenden Dienstleistern? * https://dyndnsfree.de * www.anydns.info/produkte.php
Jonas schrieb: > Mir ist es lieber, wenn ich einen Dienst nehme, der in der Fritzbox > bereits vordefiniert ist. Hat nicht AVM auch einen (kostenlosen) DynDNS-Dienst? Oder ist der so kastriert, dass er nicht für solche Sachen benutzbar ist? Ich habe mir dazu mal https://www.ddnss.de/ eingerichtet.
Matthias S. schrieb: > Hat nicht AVM auch einen (kostenlosen) DynDNS-Dienst? Oder ist der so > kastriert, dass er nicht für solche Sachen benutzbar ist? Nutze ich hier, funktioniert tadellos und tut genau das was es soll. Markus schrieb: > So wie Windows auch auf vielen Geräten in der Industrie läuft? Jep, und ist ja auch nicht schlecht.
> Mir ist es lieber, wenn ich einen Dienst nehme, der in der > Fritzbox bereits vordefiniert ist. Das ist weniger Streß für > mich, das ist mir die monatliche Gebühr wert. Hast Du prinzipiell recht, allerdings hat das bei mir mehrmals nicht zuverlässig funktioniert, sprich die neue IP wurde nicht übermittelt. Das hat dazu geführt, daß ich erst einen eigenen Updater für dyndns.org geschrieben habe und der ließ sich natürlich prima für das eigene Weiterleitungssystem wiederverwenden.
Jonas schrieb: > Mir ist es lieber, wenn ich einen Dienst nehme, der in der Fritzbox > bereits vordefiniert ist. Das ist weniger Streß für mich, das ist mir > die monatliche Gebühr wert. Ich denke alles andere kostet für mich viel > Zeit. Du musst es nur einmal in deiner Fritzbox eintragen. Einmal. Und und um die drei Eingabefelder zu umgehen, willst du monatlich Geld abdrücken? Bild geklaut von https://tobiwashere.de/2014/03/fritzbox-dyndns-mit-afraid-org/ , erster Google-Treffer.
Hat die Fritzbox nicht sogar VPN? Wenn der Webserver nicht für jeden von außen erreichbar sein muss, würde ich nämlich auch so eine VPN-Verbindung bevorzugen.
Jonas schrieb: > Mir ist es lieber, wenn ich einen Dienst nehme, der in der Fritzbox > bereits vordefiniert ist. Würde mich wundern, wenn freedns.afraid.org von der Fritzbox nicht unterstützt wird. Das Prinzip der Anmeldung ist doch bei allen Diensten gleich. Ben B. schrieb: > Das hat dazu geführt, daß ich erst einen eigenen Updater für dyndns.org > geschrieben habe und der ließ sich natürlich prima für das eigene > Weiterleitungssystem wiederverwenden. Ich habe 20 Jahre lang einen selbstgebauten Router verwendet. (P133, 64MB RAM) Auch hier lief ein selbstgeschriebenes bash-script, welches irgendwann auch mit den widrigsten Anforderungen der Anbieter umgehen konnte. Mit der Anforderung für Gigabit wurde der Rechner nun in den Ruhestand geschickt und ein Router als Gerät angeschafft. Auch wenn ich mich über fehlende Funktionen ärgere. Da lief das Script dann natürlich nicht mehr. Εrnst B. schrieb: > Du musst es nur einmal in deiner Fritzbox eintragen. Einmal. > Und und um die drei Eingabefelder zu umgehen, willst du monatlich Geld > abdrücken? Wieso? Muss man die Felder dann nicht mehr ausfüllen? Matthias S. schrieb: > Wenn der Webserver nicht für jeden von außen erreichbar sein muss, würde > ich nämlich auch so eine VPN-Verbindung bevorzugen. Aber auch dafür benötigt er einen dynamischen name server. Es sei denn, er hat eine feste IP. (Was man idR. nur hat, wenn man diese Fragen nicht mehr stellen muss.) Gruß Jobst
Matthias S. schrieb: > Hat die Fritzbox nicht sogar VPN? > > Wenn der Webserver nicht für jeden von außen erreichbar sein muss, würde > ich nämlich auch so eine VPN-Verbindung bevorzugen. Oder einen SSL Reverse Proxy davor der Client Zertifikate fordert.
Jobst M. schrieb: > Εrnst B. schrieb: >> Du musst es nur einmal in deiner Fritzbox eintragen. Einmal. >> Und und um die drei Eingabefelder zu umgehen, willst du monatlich Geld >> abdrücken? > > Wieso? Muss man die Felder dann nicht mehr ausfüllen? Nö. Wenn man auf "Übernehmen" geht, speichert die Fritzbox die Einstellungen. Dauerhaft. Wär' ja auch blöd, wenn man die bei jedem IP-Wechsel neu eintippen müsste. Dann würde ich den Leidensdruck verstehen, da monatlich ein paar € auszugeben.
Εrnst B. schrieb: >> Wieso? Muss man die Felder dann nicht mehr ausfüllen? > > Nö. Wenn man auf "Übernehmen" geht, speichert die Fritzbox die > Einstellungen. Dauerhaft. Wär' ja auch blöd, wenn man die bei jedem > IP-Wechsel neu eintippen müsste. Dann würde ich den Leidensdruck > verstehen, da monatlich ein paar € auszugeben. Ähm, nein. Wie kommen denn die Daten dort hinein, wenn er einen Account bezahlt? Die muss er doch dennoch ausfüllen. Gruß Jobst
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.