Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Meldung Internetausfall

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Meldung Internetausfall

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MiSchroe last edited by

      @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>
      
      1 Reply Last reply Reply Quote 0
      • S
        Shadowhunter23 last edited by

        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...

        MartinP 1 Reply Last reply Reply Quote 0
        • MartinP
          MartinP @Shadowhunter23 last edited by

          @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.

          S 1 Reply Last reply Reply Quote 0
          • S
            Shadowhunter23 @MartinP last edited by Shadowhunter23

            @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.

            1 Reply Last reply Reply Quote 0
            • S
              Shadowhunter23 last edited by Shadowhunter23

              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?

              haselchen 1 Reply Last reply Reply Quote 0
              • haselchen
                haselchen Most Active @Shadowhunter23 last edited by haselchen

                @shadowhunter23

                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 🙂 )

                https://www.strato.de/cloud-speicher/

                S 1 Reply Last reply Reply Quote 0
                • S
                  Shadowhunter23 @haselchen last edited by Shadowhunter23

                  @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.

                  haselchen 1 Reply Last reply Reply Quote 0
                  • haselchen
                    haselchen Most Active @Shadowhunter23 last edited by haselchen

                    @shadowhunter23

                    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?

                    1 Reply Last reply Reply Quote 0
                    • MartinP
                      MartinP last edited by

                      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 erreichbar

                      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 ...

                      Könnte man aber ggfs. auch über den iob automatisieren - man kann ja auch Reaktionen auf eingehende Mails legen.

                      haselchen S 2 Replies Last reply Reply Quote 0
                      • haselchen
                        haselchen Most Active @MartinP last edited by

                        @martinp

                        Ich bin schonmal raus... 🙂
                        Carrier Grade NAT....

                        MartinP 1 Reply Last reply Reply Quote 0
                        • MartinP
                          MartinP @haselchen last edited by MartinP

                          @haselchen Auch IPv6 Adressen kann man pingen 😉

                          EDIT: Ich weiß aber nicht ob der IOB-Ping Adapter das beherrscht...

                          EDIT2: Funktioniert ..

                          6fe677ff-e6a8-48a3-a1d1-6e638ef7586a-grafik.png

                          1 Reply Last reply Reply Quote 0
                          • S
                            Shadowhunter23 @MartinP last edited by

                            @martinp

                            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.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            793
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            9
                            25
                            1173
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo