NEWS
Meldung Internetausfall
-
@martinp
Das ist genau das was ich geschrieben habe. -
@Fruchtzwergi
Ich hatte mal genau das gleiche Problem. Über den tr-064 Adapter kann man den Internetstatus von der FritzBox abfragen.
Für mich hat es gereicht, die Daten in ein paar Datenpunkte zu schreiben, da ich das einfach nur protokollieren wollte.
Über den History-Adapter kann man sich das dann z.B. in eine Datenbank schreiben lassen und später auswerten.
Alternativ kannst du dir natürlich eine Nachricht senden lassen, wenn der PhysicalLinkStatus sich ändert.Hier das Script (Blockly):
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="rwzxO_@~WbTEz1Id_`+4">response</variable> <variable id="R@M!ScA7}(c1m_YX^92V">CommandGetCommonLinkProperties</variable> <variable id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</variable> <variable id="Ug,z#Gb~TkV7eA=#+Skn">value</variable> </variables> <block type="create" id="rqk`+gp[.4#P2uAn-lXg" x="-612" y="-363"> <field name="NAME">FritzBox.WANAccessType</field> <next> <block type="create" id="E+~ypM_H7jOl3R9cksm."> <field name="NAME">FritzBox.Layer1UpstreamMaxBitRate</field> <next> <block type="create" id="yrzpQO]ARf?x%EoozG,)"> <field name="NAME">FritzBox.Layer1DownstreamMaxBitRate</field> <next> <block type="create" id="wG8*_fGL~NzvqyVF=W,v"> <field name="NAME">FritzBox.PhysicalLinkStatus</field> <next> <block type="schedule" id="@.X;`kwnSNa3D-h5MUPd"> <field name="SCHEDULE">0,10,20,30,40,50 * * * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="5v{oq#Eoj/woD53k_ai?"> <mutation name="GetDSLInformationFromFritzBox"></mutation> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="x0_Ie1Wdq|b5tAki.8W(" x="-87" y="-363"> <field name="NAME">GetDSLInformationFromFritzBox</field> <comment pinned="false" h="80" w="160">Read DSL information with TR-064 adapter from FritzBox</comment> <statement name="STACK"> <block type="variables_set" id="8gh?Hy7.Jl:zDwK~ZDH["> <field name="VAR" id="R@M!ScA7}(c1m_YX^92V">CommandGetCommonLinkProperties</field> <value name="VALUE"> <block type="text" id="81v7l1[F6a?=o]-7n}i0"> <field name="TEXT">{"service": "urn:dslforum-org:service:WANCommonInterfaceConfig:1","action": "GetCommonLinkProperties","params": {}}</field> </block> </value> <next> <block type="control" id="Y9y;,|xA1#K{u}y7H#T`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tr-064.0.states.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Yef2HePdV2ew%CXq,7.%"> <field name="VAR" id="R@M!ScA7}(c1m_YX^92V">CommandGetCommonLinkProperties</field> </block> </value> <next> <block type="get_value_async" id="tHwuM:E,x1-hM%%LlPF8"> <field name="ATTR">val</field> <field name="OID">tr-064.0.states.commandResult</field> <statement name="STATEMENT"> <block type="variables_set" id="G8PrwJgS*x~1O76KSFf#"> <field name="VAR" id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</field> <value name="VALUE"> <block type="convert_json2object" id="}MjVw07Xtu4}:e}T=+UV"> <value name="VALUE"> <block type="variables_get" id="=D/m{rDOUs5Sgy?a*k2E"> <field name="VAR" id="Ug,z#Gb~TkV7eA=#+Skn">value</field> </block> </value> </block> </value> <next> <block type="update" id="cT`;d18Bqp]+wW`ejcwI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.FritzBox.WANAccessType</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="Z[do)*?xfqr!P,h%v+eC"> <mutation name="getWANAccessType"> <arg name="response"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="#lk1N_PM{,cy7D6bKx3@"> <field name="VAR" id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</field> </block> </value> </block> </value> <next> <block type="update" id="}Kh.?z^.t1Xm3p5s0j1i"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.FritzBox.Layer1DownstreamMaxBitRate</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="oXIv=ZyubHR,SHYS1sg2"> <mutation name="getLayer1DownstreamMaxBitRate"> <arg name="response"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="(J%`EY[Fq:E1Cp!EnOx3"> <field name="VAR" id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</field> </block> </value> </block> </value> <next> <block type="update" id="^,1.Jss=cAAvU1xmghyR"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.FritzBox.Layer1UpstreamMaxBitRate</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="M49#`IX,T@ionI)|~gT]"> <mutation name="getLayer1UpstreamMaxBitRate"> <arg name="response"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="1cFYx.^3s*aU5FjQ.D!}"> <field name="VAR" id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</field> </block> </value> </block> </value> <next> <block type="update" id="M%%BlpE+yS%#%_kwdhk9"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.FritzBox.PhysicalLinkStatus</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="[8x2~Uj~X}70iSmpw,s#"> <mutation name="getPhysicalLinkStatus"> <arg name="response"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="{dg50u~~/UaW:L2E/V+w"> <field name="VAR" id="C2W`O*!(?*=w#gqWgSod">commonLinkPropertiesResponse</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defcustomreturn" id="D2RyJks?h;-5/|ULrLIa" x="988" y="-363"> <mutation statements="false"> <arg name="response" varid="rwzxO_@~WbTEz1Id_`+4"></arg> </mutation> <field name="NAME">getWANAccessType</field> <field name="SCRIPT">cmV0dXJuIHJlc3BvbnNlLk5ld1dBTkFjY2Vzc1R5cGU7</field> <comment pinned="false" h="80" w="160">Gets the WAN access type from the response object</comment> </block> <block type="procedures_defcustomreturn" id=":r]v%.4ygwlSQzM74q/Y" x="987" y="-313"> <mutation statements="false"> <arg name="response" varid="rwzxO_@~WbTEz1Id_`+4"></arg> </mutation> <field name="NAME">getLayer1UpstreamMaxBitRate</field> <field name="SCRIPT">cmV0dXJuIHJlc3BvbnNlLk5ld0xheWVyMVVwc3RyZWFtTWF4Qml0UmF0ZTs=</field> <comment pinned="false" h="80" w="160">Gets the upstream bit rate from the response object</comment> </block> <block type="procedures_defcustomreturn" id="06NvLSFlu3)B)9FHk,=`" x="987" y="-263"> <mutation statements="false"> <arg name="response" varid="rwzxO_@~WbTEz1Id_`+4"></arg> </mutation> <field name="NAME">getLayer1DownstreamMaxBitRate</field> <field name="SCRIPT">cmV0dXJuIHJlc3BvbnNlLk5ld0xheWVyMURvd25zdHJlYW1NYXhCaXRSYXRlOw==</field> <comment pinned="false" h="80" w="160">Gets the downstream bit rate from the response object</comment> </block> <block type="procedures_defcustomreturn" id="eg7+%E3`+pWtuo#LXJSG" x="987" y="-212"> <mutation statements="false"> <arg name="response" varid="rwzxO_@~WbTEz1Id_`+4"></arg> </mutation> <field name="NAME">getPhysicalLinkStatus</field> <field name="SCRIPT">cmV0dXJuIHJlc3BvbnNlLk5ld1BoeXNpY2FsTGlua1N0YXR1czs=</field> <comment pinned="false" h="80" w="160">Gets the link status from the response object</comment> </block> </xml>
-
Theoretisch bräuchte man einen externen Server im Internet der den Ping auf den iobroker Zuhause macht. Ist dieser Ping weg gibt der Server die Meldung zurück, iobroker offline. Daraus könnte man sogar ein Geschäftsmodell machen...
-
@shadowhunter23 thinkbroadband.com betreibt einen ähnlichen Dienst. Man kriegt aber keine Mails, sondern es wird ein Ping Plot erstellt, der über den Browser abgerufen werden kann.
-
@martinp danke, kannte ich nicht. Aber ich könnte mir durchaus vorstellen dass für "kleines" Geld solch ein Dienst angenommen wird. Etwas besser auf die iobroker Umgebung angepasst.
Ich prüfe bei mir mit zwei iobroker auf zwei verschiedenen Geräten die interne Verfügbarkeit. Simple API schreibt gegenseitig einen Wert. Ich hatte leider schon den Fall das Ping eine Antwort liefert aber iobroker trotzdem weg war. Trotzdem bleibt, kein Internet keine Meldung. Fairerweise sei aber gesagt, so oft habe ich keinen Internetausfall.
-
Mal aus der theoretischen Ansicht betrachtet.
Man könnte sich ein VPS beim billigsten Anbieter mit z.b. 2 GB RAM mieten. Domain braucht es keine, da reicht ja die IP Adresse. Auf diesem VPS installiert man iobroker. Dann schreibt man mit Simple API von Zuhause auf den VPS. Wenn am VPS die Änderung per Simple API nicht ankommt ist Zuhause etwas "falsch". So könnte man doch in der einen Richtung prüfen?edit
Nochmal anders gedacht. @Jey-Cee
Schreib doch einen Adapter für solch ein Zenario und erstelle einen Service im Internet mit der Rückmeldung über den Status? Zahltag? -
Nette Idee.
Denke aber nach der Diskussion wirst Du niemanden finden, der für das Szenario Geld ausgeben möchte.
Mich eingeschlossen.Das Ganze kannste auch, wenn Du es so machen willst, günstig für nen Euro selber machen.
Beim Hoster GB mieten (schon gesehen für 1 Euro im Monat) und dann Deine Idee umsetzen.Sogar 50Cent monatlich. (danach einfach woanders umschauen oder Frau/Kinder anmelden
)
-
@haselchen
Einen iobroker einfach so im Internet zu installieren bedeutet schon das man Ahnung haben sollte. Da schließe ich mich aus. Mir ging es nur um die Theorie. Und man sagt auch hier im Forum das man iobroker nicht im Internet laufen lassen soll.
Aber ich könnte mir durchaus vorstellen das man diesen "Dienst" annehmen würde um die Verfügbarkeit zu prüfen. Vorraussetzung sind natürlich einfache Handhabung für den 0815 User wie z.B. mich. -
Da gibt es drölftausend Videos und Anleitungen dazu.
Und ich meinte nicht nackt Iobroker , sondern per Proxmox als VM.Findest Du es sicherer, wenn ein "Fremder" das für Dich macht?
-
Ich habe gerade eine Idee ....
Man bildet eine Art "Ping-Cloud"Beispiel:
iobroker von @haselchen pingt den internet-Anschluss von shadowhunter23, und schickt Shadowhunter23 eine Mail, wenn nicht erreichbar.
iob von @Shadowhunter23 pingt den Internet-Anschluss von martinp, und schicht martinp eine Mail, wenn nicht erreichbar
iob von martinp pingt den Internet-Anschluss von haselchen, und schicht haselchen eine Mail, wenn nicht erreichbarEin Pferdefuß ist, dass ja kaum ein User eine wirklich feste IP hat, da wird wohl auch ein gewisser Pflegeaufwand nötig sein, wenn die IP-Adressen beim Provider durchgerührt werden ...
Könnte man aber ggfs. auch über den iob automatisieren - man kann ja auch Reaktionen auf eingehende Mails legen.
-
Ich bin schonmal raus...
Carrier Grade NAT.... -
@haselchen Auch IPv6 Adressen kann man pingen
EDIT: Ich weiß aber nicht ob der IOB-Ping Adapter das beherrscht...
EDIT2: Funktioniert ..
-
Ein Pferdefuß ist, dass ja kaum ein User eine wirklich feste IP hat, da wird wohl auch ein gewisser Pflegeaufwand nötig sein, wenn die IP-Adressen beim Provider durchgerührt werden ...
Im Ping Adapter lässt sich auch eine Dyn DNS / Hostname Adresse eintragen. Wenn ich das richtig getestet habe funktioniert das auch.