Fehlende Internetverbindung delektierende

Begonnen von Damu, 16 April 2018, 22:24:20

Vorheriges Thema - Nächstes Thema

Damu

Hallo
Hatte heute zeitweise kein Internet.
Habe nun gemerkt das FHEM mit seinen Benachrichtigungen etc. das nicht so gut verträgt.
Es geht natürlich nicht nur um FHEM.
Die Cam möchte bei Bewegung auch Mail versenden usw. und das überlastet das Netzwerk auch zusätzlich.
Wie kann ich die Fehlende Internetverbindung überprüfen?
Habe das Fritzmodul und eine 7490 und das Fritzmodul in FHEM installiert.
Möchte bei fehlender Internetverbindung Push Meldungen deaktivieren, den Mobotix Kameras kann FHEM das senden von Bilder per Mail auch deaktivieren und später wieder aktivieren.

knopf_piano

zotac nano mit proxmox und ganz viel zeug drauf

CoolTux

Ein einfaches presence Device auf einen externen DNS Server sollte ausreichen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ThomasMagnum

Guten Morgen,

wie CoolTux brereits schrieb einfach ein Precence Device anlegen.
defmod Internet PRESENCE lan-ping 8.8.8.8 60

Diesen dann in einem doif oder was auch immer abfragen.

Wernieman

Du könntest auch auf die "Externe IP" detektieren: box_ipExtern
Beim letzten Mal ging diese bei mir (laut Log) auf 0.0.0.0
Eventuell geht auch box_connect .... müstest Du aber auch testen.

Ansonsten per Cron-Job auf eine Extere Webside prüfen .... mit passenden TimeOut
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

hsepm

#5
Userreading Fritzbox:

online {(ReadingsVal($name,"box_ipExtern", "") eq "-") ? "aus" : "an"}

So was in der Art sollte funktionieren.

Gruß,
Holger

the ratman

oder als doif
( [fritzbox:box_ipExtern] eq "-" )
( say warnung! internetverbindung wurde unterbrochen )
DOELSEIF
( [fritzbox:box_ipExtern] ne "-" )
( say internetverbindung wieder hergestellt )
→do↑p!dnʇs↓shit←

hsepm

Ich denke, der entscheidende Hinweis ist, dass box_ipExtern bei fehlendem WAN-Uplink auf den Wert "-" geht, zumindest bei mir  :D

Wernieman

Einfach mal probieren .,.. im laufenden Betrieb mal "das I-Netz" ziehen und gucken, was die Box dann raussendet ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Mitch

Blöde Frage, wozu soll das gut sein?

Wenn ich Zuhause kein Inet habe, wie soll ich mich dann benachrichtigen lassen?

Und wenn ich Zuhause bin, dann dauert so ein Ausfall keine 5 Sec. und meine Kinder schreien   :o
FHEM im Proxmox Container

hsepm

Zitat von: Mitch am 17 April 2018, 12:02:09
Blöde Frage, wozu soll das gut sein?

Wenn ich Zuhause kein Inet habe, wie soll ich mich dann benachrichtigen lassen?

Und wenn ich Zuhause bin, dann dauert so ein Ausfall keine 5 Sec. und meine Kinder schreien   :o

Dann bist du nicht in der Zielgruppe für diese Lösung, da du ja schon mehrere Biomelder hast. Es geht aber sicher auch darum 1) die Ausfälle aufzuzeichnen und 2) Aktionen auszulösen, wenn niemand zu Hause ist  :D



Wernieman

Mann könnte damit auch den Ausfall "loggen" .... was für Fehlersuche manchmal relevant sein Könnte ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Damu

#12
Der Unterbruch hat der Provider vorangekündigt.
Das Problem war aber das sich die Überwachung nicht ausschalten lies.
Ich denke Frau kommt bei der Haustüre ins Haus.
Die Mobotix T25 aussen möchte Alarm Mails senden.
Fhem könnte seine Push Meldungen auch nicht absetzen.
Dann liess sich die Innenüberwachung auch nicht ausschalten.
.........
Ich möchte keine Push Meldungen senden wenn keine Internetverbindung ist.
Alarm Mails sollte dann ach keine versendet werden.
Es gingen beide HM LAN Gateways zeitweise down deswegen.
Hoffe ich krieg das in den Griff.

Im Fritzbox Modul das Reading box_ipExtern scheint das Richtige zu sein.
Werde da mal was Einbauen.
Ein Internet Doif Dummy.



herrmannj

nicht exakt die Frage aber mglw eine Hinweis: ich habe einen LTE Stick an der FB welcher automatisch aktiviert wird wenn das DSL-Netz ausfällt (macht die FB). Meldungen werden dann via LTE verschickt.

curt

Zitat von: ThomasMagnum am 17 April 2018, 07:11:24
wie CoolTux brereits schrieb einfach ein Precence Device anlegen.
defmod Internet PRESENCE lan-ping 8.8.8.8 60

Interessante Idee, danke für den Hinweis.

Nur - muss es unbedingt Google sein? Hat jemand eine Idee, welchen Riesenserver mit freigeschaltetem Reflektor man nehmen könnte, ohne dass man gleich Terrorwarnung auslöst? Mir würde ja die IP von www.spiegel.de einfallen. Hat jemand bessere Ideen?
RPI 4 - Jeelink HomeMatic Z-Wave

curt

Zitat von: herrmannj am 18 April 2018, 00:07:24
nicht exakt die Frage aber mglw eine Hinweis: ich habe einen LTE Stick an der FB welcher automatisch aktiviert wird wenn das DSL-Netz ausfällt (macht die FB). Meldungen werden dann via LTE verschickt.

Interessante Idee, da muss ich näher nachdenken. Ich habe einen selbstgebauten Router, der hängt direkt am VLAN-Modem. Wenn das Netz wegfällt, stecke ich den LTE-Stick und aktiviere von Hand. (Ggf komme ich später mal auf Deine Lösung zurück, wenn Du erlaubst.)
RPI 4 - Jeelink HomeMatic Z-Wave

fiedel

Zitat von: hsepm am 17 April 2018, 11:02:18
Ich denke, der entscheidende Hinweis ist, dass box_ipExtern bei fehlendem WAN-Uplink auf den Wert "-" geht, zumindest bei mir  :D

Eher weniger.  ;) Es gibt auch den Zustand wo die Box verbunden ist und eine IP hat, das Netz aber trotzdem nicht erreichbar ist. Daher ist die beste Lösung "Presence auf externen (DNS-) Server". Signalisieren lasse ich mir das über einen Surfstick mit einer Discotel- Karte, der mir eine SMS schickt. Übrigens benutze ich noch ein Presence auf die interne IP der FB (ohne USV) und erkenne damit Stromausfälle (FHEM- Server mit USV), die dann auch über den Surfstick rausgehen.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Benni

Zitat von: fiedel am 18 April 2018, 04:37:42
Daher ist die beste Lösung "Presence auf externen (DNS-) Server".

Das hat außerdem den Vorteil, dass es unabhängig vom eingesetzten DSL-Router/Modem funktioniert.
Sprich das funktioniert auch, wenn man keine Fritz!Box im Einsatz hat.

Zitat von: curt am 18 April 2018, 01:27:06
Nur - muss es unbedingt Google sein? Hat jemand eine Idee, welchen Riesenserver mit freigeschaltetem Reflektor man nehmen könnte, ohne dass man gleich Terrorwarnung auslöst?

??? Wieso Terrorwarnung?
Die Google-DNS haben eben den Vorteil, dass sie quasi zu 100% zur Verfügung stehen somit ist die Prüfung auf deren Erreichbarkeit ein sehr zuverlässiges Mittel ist, die Internetverfügbarkeit zu erkennen. Und die paar Pings lösen sicher nichts aus!  ;)

Alternativ kann man aber auch den DNS des eigenen Providers nehmen, sofern bekannt.

Wernieman

Oder einen anderen Server... nur bitte einen, der es erlaubt!

z.B. heise schreibt e irgendwo (finde es aktuell nicht), Spiegel wäre dagegen ...

Ich hatte mir mal ein Script geschrieben, was eine "wieistmeineip-Webside" runterlädt und die IP extrahiert. Wenn diese sich ändert (oder die Seite wegen TimeOut nicht erreichbar ist), hat man einen Neuanmeldung oder eben auch einen Abbruch der Verbindung. Und solche Websides gibt es zu genüge (auch von Providern). Das dann alle 5 Minuten per Cron-Job ....

Aber hier kommt noch ein 2. Problem:
Wenn ich Dichr icjhtig verstehe, hängt Dein System, wenn die Push-Nachricht nicht losgetreten werden kann. Was machst Du, wenn der Zielserver ausfällt?

Alle externen Konnecktions müssen "NonBlocking", oder mit einem sinnvollen TimeOut versehen sein. Das System muß auch laufen, wenn externe Teildienste nicht funktionieren. Der Wegfall der I-Net-Konnecktion ist nur der am Häufigsten beobachte Fall, gibt aber auch genügend andere ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Zitat von: curt am 18 April 2018, 01:27:06
Interessante Idee, danke für den Hinweis.

Nur - muss es unbedingt Google sein? Hat jemand eine Idee, welchen Riesenserver mit freigeschaltetem Reflektor man nehmen könnte, ohne dass man gleich Terrorwarnung auslöst? Mir würde ja die IP von www.spiegel.de einfallen. Hat jemand bessere Ideen?
den DNS deines providers.

Wobei ich die Variante der Box IP bevorzugen würde.
weil:
was wenn dein ausgewählter Server mal ausfällt oder die IP wechselt?
dann fangst wieder an Fehker zu suchen wo evtl gar keine sind.

Otto123

Moin,

ich habe mal noch den Querverweis zu ähnlicher Thematik und der ausformulierten Lösung zu externen Box IP.
https://forum.fhem.de/index.php/topic,87081.msg795212.html#msg795212

Und noch die Idee, extern nicht bloß den normalen ping sondern ein bestimmtes Port abzufragen. Die Idee entstammt auch einen Beitrag aus dem Forum, dort war die sub aber nicht komplett fehlerfrei.

Für die 99_myUtils.pm
sub ServiceMonitor($$)
# Usage: ServiceMonitor("Hostname","Portnummer")
# in Presence: function {ServiceMonitor("Hostname","Portnummer")}
{
    use Net::Ping;
    my ($host, $port)    = @_;
    my $status;
   
    # Create a new ping object
    my $p = Net::Ping->new("syn");
    $p->port_number($port);
    $p->ping($host,10);
   
    # perform the ping
    if ( $p->ack ) {
$status = 1;
    }
    else{
    $status = 0;
    }
   
    # close our ping handle
    $p->close();
    return $status;
   
}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tupol

box_connect != 5 sollte auf eine fehlende DSL Verbindung hinweisen.
FHEM 5.5 auf RPi B Rev.2 (mit LCD4Linux, BMP180 und CUL v3 868.35 MHz), FB7490, Fritz!DECT 200, FS20, FHT80TF-2, S300TH, KS300, Homematic, PRESENCE
Modul-Entwickler von: FRITZBOX, statistics, PROPLANTA, OPENWEATHER, JSONMETER, LUXTRONIK2

curt

Zitat von: Frank_Huber am 18 April 2018, 09:33:45
Zitat
Zitat von: curt am 18 April 2018, 01:27:06
Interessante Idee, danke für den Hinweis.

Nur - muss es unbedingt Google sein? Hat jemand eine Idee, welchen Riesenserver mit freigeschaltetem Reflektor man nehmen könnte, ohne dass man gleich Terrorwarnung auslöst? Mir würde ja die IP von www.spiegel.de einfallen. Hat jemand bessere Ideen?
den DNS deines providers.[/quote}

Ganz schlechte Idee, da mein DNS-Server die DNS-Server round-robin direkt nutzt. Das macht mich z-B. unabhängig von dem DE-CIX-Ausfall vor Tagen. Oder von Filterideen meines Providers.

Zitat von: Frank_Huber am 18 April 2018, 09:33:45
was wenn dein ausgewählter Server mal ausfällt oder die IP wechselt?

Womit wir wieder auf Start wären.
RPI 4 - Jeelink HomeMatic Z-Wave

Benni

Zitat von: curt am 21 April 2018, 04:33:00
Womit wir wieder auf Start wären.

Also bei mir leistet der Ping auf den google-DNS seit Jahren zuverlässig (auf mehreren FHEM-Installationen) Information zum Internetstatus. Ich wüsste nicht, dass der je schon mal ausgefallen ist. (Und Terrorwarnung wurde deswegen auch noch nicht ausgelöst.)
Wohlgemerkt, ich nutze den nur für die Ermittlung des Internetstatus per Ping und nicht als DNS für meine Internetanfragen.

Btw.: Man muss ja nicht nur eine der genannten Varianten nutzen, sondern kann auch mehrere davon kombinieren.  ;)

gb#

Damu

#24
Danke für die Antworten.
Zitatbox_connect != 5 sollte auf eine fehlende DSL Verbindung hinweisen.
Bei mir ist
Zitatbox_connect 5
und DSL rennt.
Habe mal ein Doif gemacht, so wie es hier vorgeschlagen wurde.
Pushover kann ich auf disable 0 und disable 1 umstellen.
Bei FHEM Control Push geht das glaub eben nicht.
Da müsste die 99_FHEMControllPush.pm deaktiviert werden.

hsepm

Zitat von: fiedel am 18 April 2018, 04:37:42
Eher weniger.  ;) Es gibt auch den Zustand wo die Box verbunden ist und eine IP hat, das Netz aber trotzdem nicht erreichbar ist. Daher ist die beste Lösung "Presence auf externen (DNS-) Server". Signalisieren lasse ich mir das über einen Surfstick mit einer Discotel- Karte, der mir eine SMS schickt. Übrigens benutze ich noch ein Presence auf die interne IP der FB (ohne USV) und erkenne damit Stromausfälle (FHEM- Server mit USV), die dann auch über den Surfstick rausgehen.

Diesen Zustand habe ich in den letzten 14 Jahren nicht einmal erlebt. Mag sein, dass das Providerabhängig ist.

Wernieman

Das gab es schon häufiger ... z.B. wenn bei der TELEKOm mal wieder das routing kapput ist. Meistens nicht global, sondern nur in Teilen von Deutschland, aber eben nicht auszuschließen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

tupol

Zitat von: Damu am 21 April 2018, 20:10:20
Bei mir ist  boxConnect 5 und DSL rennt.
Würde mich überraschen, wenn es anders wäre. Deshalb sollte man auf boxConnect ungleich (!=) 5 testen. Hilft aber tatsächlich nichts, wenn die Infrastruktur des Providers spinnt.
FHEM 5.5 auf RPi B Rev.2 (mit LCD4Linux, BMP180 und CUL v3 868.35 MHz), FB7490, Fritz!DECT 200, FS20, FHT80TF-2, S300TH, KS300, Homematic, PRESENCE
Modul-Entwickler von: FRITZBOX, statistics, PROPLANTA, OPENWEATHER, JSONMETER, LUXTRONIK2

Jens_B

Zitat von: fiedel am 18 April 2018, 04:37:42
Eher weniger.  ;) Es gibt auch den Zustand wo die Box verbunden ist und eine IP hat, das Netz aber trotzdem nicht erreichbar ist. Daher ist die beste Lösung "Presence auf externen (DNS-) Server". Signalisieren lasse ich mir das über einen Surfstick mit einer Discotel- Karte, der mir eine SMS schickt. Übrigens benutze ich noch ein Presence auf die interne IP der FB (ohne USV) und erkenne damit Stromausfälle (FHEM- Server mit USV), die dann auch über den Surfstick rausgehen.


Wie hast Du das mit dem Surfstick gelöst? Ich nutze einen Raspberry und habe keine Ahnung wie ich den dazu bringe im Falle das LAN nicht da ist von FHEM aus über den Surfstick was zu schicken.

Gruß
Jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

fiedel

#29
Hi Jens,

bei mir macht das ein Huawei E303 in etwa nach dieser Anleitung.
Anders als in der Anleitung hatte ich stark mit den usb-modeswitch- Einstellungen zu kämpfen. Dazu gibt es auch viele Anleitungen passend zum Stick im Netz.
Letztendlich ist dann noch wichtig, dass der Stick auch nach Reboot wieder in dem "Modem- Modus" ist. Dazu habe ich in der /etc/udev/rules.d/z59_usb-identifyer.rules stehen:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f01", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1f01 -M '55534243123456780000000000000011062000000100000000000000000000'"


In FHEM gibt es einen SMS-Dummy den ich mit "set Dum_SMS_D Nachricht" beschicke:defmod Dum_SMS_D dummy

Ein Notify reagiert darauf und sendet die Nachricht (HANDYNUMMER mit deiner Nummer ersetzten):

Dum_SMS_D {

  my $SMSText = (Value("Dum_SMS_D"));

    {system("echo $SMSText. | sudo gammu --sendsms TEXT HANDYNUMMER &")};
    Log 1, "SMS wurde versendet: $SMSText";
}




Viel Erfolg!
Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Jens_B

Hallo Frank,
vielen Dank für die ausführliche Info. Ich habe einen E3372.

Zitat von: fiedel am 24 Juli 2019, 06:36:26
Hi Jens,

bei mir macht das ein Huawei E303 in etwa nach dieser Anleitung.
Anders als in der Anleitung hatte ich stark mit den usb-modeswitch- Einstellungen zu kämpfen. Dazu gibt es auch viele Anleitungen passend zum Stick im Netz.
Letztendlich ist dann noch wichtig, dass der Stick auch nach Reboot wieder in dem "Modem- Modus" ist. Dazu habe ich in der /etc/udev/rules.d/z59_usb-identifyer.rules stehen:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f01", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1f01 -M '55534243123456780000000000000011062000000100000000000000000000'"



Das habe ich jetzt mal gemacht, das funktioniert wohl auch soweit schon :-) Danke.

Zitat
In FHEM gibt es einen SMS-Dummy den ich mit "set Dum_SMS_D Nachricht" beschicke:defmod Dum_SMS_D dummy

Ein Notify reagiert darauf und sendet die Nachricht (HANDYNUMMER mit deiner Nummer ersetzten):

Dum_SMS_D {

  my $SMSText = (Value("Dum_SMS_D"));

    {system("echo $SMSText. | sudo gammu --sendsms TEXT HANDYNUMMER &")};
    Log 1, "SMS wurde versendet: $SMSText";
}




Viel Erfolg!
Frank

Das würde ich gern anders umsetzen, da ich in fhem ja schon funktionierendes email versenden habe für Alarmmeldungen etc.
Ich würde gern, das der PI im Falle eines Netzausfall automatisch aufs Mobilfunknetz geht und die mail darüber verschickt und wenn wieder Netz da ist automatisch zurück auf LAN...
Das scheint gerad noch nicht ganz zu klappen.

Gruß
Jens

RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

fiedel

Zitat von: Jens_B am 24 Juli 2019, 09:00:12
Ich würde gern, das der PI im Falle eines Netzausfall automatisch aufs Mobilfunknetz geht und die mail darüber verschickt und wenn wieder Netz da ist automatisch zurück auf LAN...
Das scheint gerad noch nicht ganz zu klappen.

Das geht so nicht. Du müsstest dann mit dem Modeswitch den Stick in Netzwerkmodus, bzw. in den Modus bringen, der die Internetverbindung ermöglicht.
Dann kannst du Mail senden (wie normal), aber kein SMS. Wenn du das mit dem Raspi nicht hinbekommst gäbe es auch noch die Möglichkeit den Stick an
eine Fritzbox anzustecken und ihn als Rückfallverbindung einzurichten, also wenn DSL ausfällt. Beides habe ich aber nicht im Einsatz und kann nicht weiterhelfen.

Hier noch alle Umschaltsequenzen zum E303. Vielleicht gehen die ja auch für deinen Stick:
"55534243123456780000000000000011063000000100010000000000000000" Modem
"55534243123456780000000000000011062000000100000000000000000000" Modem
"55534243123456780000000000000a11062000000000000100000000000000" Netzwerk
"55534243000000000000000000000011060000000000000000000000000000" Debug
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Jens_B

Hallo Frank,
an die Fritzbox anzuschließen macht keinen Sinn, wenn der Strom weg ist, hat die Box auch keinen Strom mehr ;-).
Eventuell besorge ich mir einen anderen SurfStick, der als WLAN Router fungieren könnte. Damit baue ich dann ein separates WLAN auf, mit dem sich der Raspberry im Falle des Netzausfalls verbindet. Allerdings habe ich dem Pi noch nicht entlocken können, sich nur dann per WLAN zu verbinden, wenn LAN weg ist.

Gruß
Jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

Wernieman

das switchen kannst Du doch durch automatisches Ändern der "default route" machen?

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html