homecontrol4me Reboot

Hallo, ich nutze den Sketch von Fabian Behnke, homecontrol4me

http://www.homecontrol4.me/de/?id=bauanleitung
So, nun sind es Links, für die älteren Herren hier :wink:

Eine Steuerung für 433Mhz Funksteckdosen.

Funktioniert super, aber ab und zu muss ich meine Fritzbox neustarten (Updates installieren).
Und nachdem diese neugebootet hat, ist der Arduino unter der fest vergebenen IP 192.168.2.10 nicht mehr erreichbar. Erst wenn ich den Arduino manuell neugestartet habe.

Ich nutze einen Uno Nachbau und ein W5100 Ethernet Shield Nachbau.

Kann mir jemand helfen, den manuellen Neustart irgendwie zu automatisieren oder würde das gegen die Copyright verstoßen?

arduino_009:
Kann mir jemand helfen, ....

Ich vermute einen Fehler in deinem Netzwerk, der Fritzbox oder deinem Sketch.

Ich nutze ebenso eine Fritzbox, einen Uno und ein W5100 Ethernetshield und kenne keine derartigen Probleme nach einem Neustart der Fritzbox.

Ich kann sofort nach dem Neustart der Fritzbox mein Server erreichen.

Man kann bei den wenigen Infos nur vermuten. Ich vermute auch mal DHCP und keine feste IP und/oder in der Fritzbox nicht eingestellt, dass bekannte MAC wieder die gleiche IP bekommen bzw. eine feste IP für die MAC eingestellt.

Gruß Tommy

Ich vermute fast eine fehlerhafte reconnect()-Routine...

Ihr müsstet nicht mutmaßen, wenn ihr den github Link anklicken würdet :wink:
Dort könntet ihr doch den sketch herunterladen.

Die IP ist fest vergeben, richtig. Das schrieb ich aber auch schon.
DHCP ist in den settings von homecontrol4me deaktiviert.

Ihr müsstet nicht mutmaßen, wenn ihr den github Link anklickt :wink:
Dort könntet ihr doch den sketch herunterladen.

-->Zu viele Unterkategorien, als dass man da auf Anhieb durchblicken kann...
Poste einfach den entsprechenden Sketch in Code-Tags, da kann Dir besser geholfen werden :wink:

arduino_009:
Ihr müsstet nicht mutmaßen, wenn ihr den github Link anklicken würdet :wink:

Welcher Link ? Ich sehe nur 2 URL.

Der Sketch ist 3x größer als ich ihn hier posten kann.

Erst wird der eeprom vorbereitet, also Datei homecontrol4me_eeprom_prepare.pde hochgeladen

eeprom.cpp
eeprom.h
homecontrol4me_eeprom_prepare.pde

Danach wird der nächste Sketch homecontrol4me.pde hochgeladen:

homecontrol4me.pde

*.cpp und *.h habe ich mit verlinkt, da da ja auch noch was drin steht. Ob ihr das braucht?
Ich bin nicht soooo Arduino erfahren.

...Keine Reaktion, schade.

Ich hatte damals die LEDs vom Arduino verbannt. Habe den Uno und den W5100 Shield getauscht.
An den LEDs sehe ich, dass bei einem Neustart der W5100 sich nicht verbindet (grün wird).
Ich muss ihn manuell reseten. Möglich, weil ich den Strom vom USB der Fritzbox nehme.

Das Beste wäre eine Routine, die den Arduino 2 Minuten nach dem ersten anstecken an den Strom einmal neustartet. Ist sowas möglich ohne dass er ALLE 2 Minuten neustartet?

Oder alle 2 Minuten neustarten, wenn das Gateway nicht erreichbar ist?

...Na dann...

100nF zwischen Reset und GND Pin haben geholfen. Das Problem ist beim W5100 bekannt, ich wusste aber nichts davon.

Und für den Rest habe ich mir eine Einschaltverzögerung von 2 Minuten gebaut.

Läuft!

Es funktioniert leider doch noch nicht. Nachwievor ist ein manueller Reset nach dem booten notwendig.

So kanns gehen…
Ich hab mich mal umgeschaut, ich vermisse im Code aus #7 eine Art reconnect()-Routine.
Unter diesem Link ist mir aufgefallen, dass regelmäßig Ethernet.maintain() aufgerufen werden sollte.
Würde dies in der loop() hinzufügen.
Geht es immer noch nicht, würde ich eine Routine schreiben, die regelmäßig aufgerufen wird. Diese Routine prüft, ob eine Verbindung besteht. Wenn nicht, dann ein paar Sekunden warten, und versuchen, eine neue Verbindung aufzubauen (siehe Ethernet.begin() im setup())

Vielen dank für deine Antwort.

Braucht man Ethernet.maintain() nicht nur wenn man die IP via DHCP bezieht? Ich habe sie festeingetragen und DHCP im homecontrol Sketch deaktiviert.

Diese Ethernet Shield Nachbauten machen diese Probleme häufiger. Ich hatte dieses Problem auch aber nie mit den 3 originalen Shields von Arduino.
Was du noch versuchen könntest wäre DHCP zu aktivieren und im Router zu der MAC einen festen Hostname zu vergeben und über diesen dann zu verbinden.

Gruß