Arduino permanent mit Internet verbinden

Hallo,

ich würde gerne einen Uno permanent und sicher mit dem Internet verbinden. Das EthernetShield soll hierfür per DHCP angeschlossen werden und über die MAC-Adresse eine definierte IP-Adresse erhalten.

Dies funktioniert auch soweit.

Muss im Bezug auf eine dauerhafte Verbindung zum Internet irgendetwas zusätzlich beachtet werden?

Es geht mir darum, dass der Arduino absolut stabil verbunden ist.

Gruß Chris

Erstmal richtig Programmieren lernen.

Dann:
3G Router nicht vergessen, falls Festnetz ausfällt.
Alle Systeme redundant auslegen.
Alle Systeme per USV stützen.
Interner Watchdoch, externer Watchdog
Feuerfester Schrank (T30?) mit Kühlung und Heizung
Löschsystem
Kabel in Panzerrohr verlegen (Verbissschutz)
Schutz gegen Überschwemmung.... Überhaupt: Wind- Wetter- Korrosion.

Warum fixiert auf einen UNO?
Der spielt doch, von den Kosten her, keine Rolle...

combie:
Dann:
3G Router nicht vergessen, falls Festnetz ausfällt.
Alle Systeme redundant auslegen.
Alle Systeme per USV stützen.
Interner Watchdoch, externer Watchdog
Feuerfester Schrank (T30?) mit Kühlung und Heizung
Löschsystem
Kabel in Panzerrohr verlegen (Verbissschutz)
Schutz gegen Überschwemmung.... Überhaupt: Wind- Wetter- Korrosion.

Da muß ich Dir leider und nur ausnahmsweise mal widersprechen: Nützt alles nichts, gegen Murphies Gesetze kommt niemand an! Beispiel: "Den Ausfall von ... bis ... bitten wir zu entschuldigen. Grund war eine Reparatur an der USV." Mein Liebling: "Eine lockere Schraube verursachte sporadisch einen Massekontakt, der zum Ausfall des System führte." :slight_smile:

@Chris72622:
Reden wir über ein privates oder professionelles System? Privat: Mein Router hat einen Timeout und mein Provider schmeißt mich einmal pro Tag raus, steht so zumindest in meinem Vertrag. Die Neueinwahl braucht dann immer etwas Zeit. Dabei ändert sich dann auch die dynamisch vergebene IP.

Murphies Gesetze

Naja...
Man kann sich Mühe geben...
Und je mehr Teile man verwendet, desto mehr gehen auch kaputt.
Und natürlich die, von denen man das gar nicht erwartet.

Nein!
Gegen Murphy gibts kein Mittel.
Und gegen Heinrich, die Wasserstoffbombe, auch nicht.

agmue:
Reden wir über ein privates oder professionelles System? Privat: Mein Router hat einen Timeout und mein Provider schmeißt mich einmal pro Tag raus

Hallo agmue,

ich gehe bei meinem (privaten) Vorhaben von "gewöhnlichen Gegebenheiten", wie sie in Privathaushalten heutzutage für gewöhnlich vorkommen aus.

Wie gehst Du mit dem Timeout Deines Routers um und hast Du Dir eine Logik überlegt, um der Tatsache entgegenzuwirken, dass Dich Dein Provider täglich einmal raussschmeisst? Falls ja, welche?

Wie bist Du an die Sache rangegangen, was ist Dein Anwendungsfall, wie zufrieden bist Du mit Deiner Lösung, was ist Deine Lösung und was willst Du mit Deiner Lösung erreichen?

In meinem Fall wäre es eine Alarmanlage, welche mir eine E-Mail schicken soll, sobald ein Einbrecher im Haus zu sein scheint.

Gruß Chris

Hallo,

mit dem Internet stabil verbunden ist Dein Router der widerum abhängig von Deinem Provider ist.
Aber wenn Dein Uno nur manchmal eine E-Mail rausschicken soll, also nichts empfangen soll, dann benötigt der Uno keine permanente Verbindung zum Internet. Die hat außerdem eh der Router. Der Uno schickt einfach seine Mail raus, wenn er es muß. Die Frage ist allerdings, wie du es anstellen möchtest, das der Uno eine aktzeptierte Mail an Deinen Mail-Provider schickt.

Ich würde daher eher mit Prowl oder noch besser einem html SMS Dienst arbeiten. SMS geht auch, wenn du gerade kein Internet auf dem Handy hast.
Bei clientanwendungen wie dieser spielt der IP Wechsel keine Rolle, wenn die response Auswertung der Senderoutine gut gemacht ist

Chris72622:
Muss im Bezug auf eine dauerhafte Verbindung zum Internet irgendetwas zusätzlich beachtet werden?

Darauf zielte meine Antwort.

Chris72622:
... was ist Dein Anwendungsfall, ...

Ich habe keinen, da ich keine "dauerhafte Verbindung zum Internet" benötige.

Chris72622:
In meinem Fall wäre es eine Alarmanlage, welche mir eine E-Mail schicken soll, sobald ein Einbrecher im Haus zu sein scheint.

Du brauchst also keine "dauerhafte Verbindung zum Internet" sondern eine, ich will es mal so nennen, verläßliche Verbindung bei Bedarf. Ideen:

Ich habe meinen Telefonanschluß, der sichtbar an der Wand hing, vergraben lassen, damit niemand ihn durchkneift. Das haben Einbrecher vor einem Einbruch in einen Supermarkt gemacht.

Der Einbrecher könnte einen Kurzschluß erzeugen, der Router und die gesamte Alarmanlage sollte also unabhängig vom Netz sein. Außensteckdosen sollten ausgeschaltet und an eigenen Sicherungen hängen. Ein Fehlerstromschutzschalter macht das ganze Haus stromlos.

Und mit einem Störsender können sie auch mobiles Internet und SMS Versand über Sim Karte blockieren.

hi,

wenn Dein telefon einigermaßen "abknipssicher" ist, könntest Du nicht eine SMS über diese leitung verschicken? das telefonnetz geht ja auch bei stromausfall und störsendern...

gruß stefan

ElEspanol:
........ besser einem html SMS Dienst arbeiten.

Das meinte ich in #6, SMS übers Internet verschicken.

Chris72622:
In meinem Fall wäre es eine Alarmanlage, welche mir eine E-Mail schicken soll, sobald ein Einbrecher im Haus zu sein scheint.

Für eine "stabile" Dauer-Internetverbindung über Deinen Router wäre es sehr vorteilhaft, im Heimnetz eine statische IP-Adresse für den Arduino zu verwenden. Also eine IP-Adresse aus der Routerkonfiguration heraussuchen, die NICHT zu dem IP-Adressbereich gehört, aus dem der Router dynamische IP-Adressen vergibt, und diese IP-Adresse im Arduino als statische IP-Adresse zuordnen.

Bei Verwendung einer dynamischen IP-Adresse für den Arduino wird es mit "stabile" Verbindung ein wenig schwieriger, und zwar schaltungstechnisch wie auch programmtechnisch.

Der Knackpunkt sind dabei kurzfristige Stromausfälle und wie Dein System nach einem kurzfristigen Stromausfall wieder automatisch funktionsfähig wird. Stromausfälle können dabei sowohl vom Stromversorger verursacht werden, als auch im Haus selbst, z.B.:

  • jemand zieht den Stecker des Routers, um die Steckdose zum kurzfristigen Staubsaugen zu nutzen
  • dito für die Steckdose mit der Stromversorgung des Arduino

Knackpunkte sind dabei:

  1. gleichzeitiger Stromausfall überall im Haus mit gleichzeitiger Stromrückkehr nach einiger Zeit
  2. Stromausfall nur am Router, mit Rückkehr des Stroms am Router, während der Arduino dauernd unter Strom war

Bei 1) passiert das: Der Arduino bootet wesentlich schneller (ca. 2 Sekunden) als der Router bootet und betriebsbereit wird (ca. 60 Sekunden). Dabei kann der Arduino beim Programmstart möglicherweise keine IP-Adresse im ersten Versuch erhalten. Du mußt im Setup also eine Timeout-Schleife für die Initialisierung des Netzwerks einbauen: Der Arduino muß bei einem Neustart so lange versuchen eine IP-Adresse vom Router zu erhalten, bis er tatsächlich eine erhalten hat. Erst danach kann er durchstarten.

Abhilfe wäre: Geänderte/optimierte Setup-Routine.

Bei 2) schließlich greift nur noch "Prinzip Hoffnung": Namlich die Hoffnung, dass der durchgelaufene Arduino seine IP-Adresse weiter verwenden kann, ohne dass er diese nach dem Neustart des Routers vom Router zugeteilt bekommen hätte. Es geht schief, wenn nach dem Router-Neustart ein Gerät eine IP-Adresse anfordert und zugeteilt bekommt, die der Arduino aber bereits verwendet (der sie vor dem Reboot des Routers erhalten hatte). Dann hängt das Netzwerk, weil dann zwei Geräte dieselbe IP-Adresse haben.

Abhilfe wäre: Entweder Glück haben. Oder es schaltungstechnisch sicherstellen, dass auch der Arduino immer gleichzeitig stromlos wird, wenn auch der Router stromlos wird. Also es durch bauliche Maßnahmen verhindern, dass etwa zum Staubsaugen nur das Steckernetzteil des Routers gezogen wird, während das Netzteil des Arduino weiter Strom behält.

Des weiteren wäre die Lease-Time bei Verwendung einer dynamischen IP-Adresse zu beachten. Jede dynamisch zugeteilte IP-Adresse wird vom Router immer nur "auf Zeit" zugeteilt, nämlich für die Lease-Time. Durch einen Lease-Refresh muß die Gültigkeit der IP-Adresse nach ca. der halben Lease-Time (aber vor Ablauf der gesamten Lease-Time) erneut angefordert werden. Dazu baust Du im einfachsten Fall zusätzlich irgendwo einen Aufruf der Art in die loop() Funktion ein:

Ethernet.maintain();

https://www.arduino.cc/en/pmwiki.php?n=Reference/EthernetMaintain
Du brauchst übrigens keine große Angst vor einer Verlangsamung der loop() Funktion haben, wenn Du den Aufruf ständig machst: Die Funktion verwaltet einen eigenen Zeitzähler und führt die Lease-Time Verlängerung der IP-Adresse beim Router tatsächlich nur in größeren Zeitabständen durch.

Hallo,

wenn das Internetz komplett auf IP umgestellt ist, gibt es keine dauerhafte Stromversorgung mehr für analoge Telefone im Haus. Diese Sicherheit ist dann ein für allemal Geschichte. Denn selbst wer an seinem reinen Analoganschluss festhält, wenn er kann, geht nur ohne DSL, ist zwangsläufig im nächsten DSLAM auf das neue IP Netzwerk aufgeklemmt. Wenn hier der Saft weg ist, ist der Saft weg. Das heißt, der analoge Anschluss heißt dann nur noch so.

Wegen der dynamischen Router IP Vergabe. Ich habe schon immer Fritzboxen im Einsatz. Nur das erste DSL Modem war von der Telekom (Siemens). Die Fritzboxen mit aktivierten DHCP Server wechseln selbst nie die IP Adresse, wenn sie sie einmal selbst an einen Netzwerkteilnehmer vergeben haben. Die merken sich das. Man müßte den IP Vergabebereich zurücksetzen um eine Neuzuweisung zu erzwingen. Sicherheitshalber kann man sogar noch einen Haken setzen, dass die IP nie wechseln soll. Der ist eigentlich überflüssig.

Dann könnte man noch die Power LED anzapfen, wenn diese nicht mehr blinkt, darf der Arduino booten. Und wenn sie blinkt, dann muß der Arduino neu booten bzw. warten bis sie wieder stabil leuchtet und dann seine IP erneuern.

Danke für die zahlreichen Infos, insbesondere zur Leasetime!

Gruß Chris