Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Gerät per Mac Adr & Blockly ansprechen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Gerät per Mac Adr & Blockly ansprechen

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

      Hey Leute, ich habe da mal eine Frage,
      ich habe Steuerungen die ESP8266s per Blockly und IP Adresse Neustarten können. Nun kommt es ab und an vor, das sich die IP Adresse mancher Geräte ändert.
      Ist es möglich dieses per Mac Adresse zu realisieren!?

      So sieht eine momentane Steuerung per IP Adresse aus.

      
      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="5+Aq]kWEr$-MbEsPQOdd" x="-1662" y="-862">
          <field name="OID">Aqua_Control.0.ESP_Reboot.Aqua_Control</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="|0x)BNGmXHGeJjVk{H/U">
              <value name="IF0">
                <block type="logic_compare" id="A0nYx/=g4gD=yu`enAQs">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="5ou?A5EGx)GV7{6V)4kL">
                      <field name="ATTR">val</field>
                      <field name="OID">Aqua_Control.0.ESP_Reboot.Aqua_Control</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="RuUNb(flm@##5KwJ;OT,">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="request" id="L`=gj8-_?2e-RM;s^-nm">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                  <field name="WITH_STATEMENT">FALSE</field>
                  <field name="LOG">log</field>
                  <value name="URL">
                    <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="/QB12?FoSL,HH;5mQ4WS">
                      <field name="TEXT">text</field>
                    </shadow>
                    <block type="text" id="3^i%pXoD%at.TpGj{#/N">
                      <field name="TEXT">http://192.168.0.57/cm?user=admin&amp;password=Passwort;cmnd=Restart%201</field>
                    </block>
                  </value>
                  <next>
                    <block type="control" id="Xy[DFh:4c?nO??%0OL={">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                      <field name="OID">Aqua_Control.0.ESP_Reboot.Aqua_Control</field>
                      <field name="WITH_DELAY">TRUE</field>
                      <field name="DELAY_MS">10</field>
                      <field name="UNIT">sec</field>
                      <field name="CLEAR_RUNNING">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="1oV!um/Rsj,4Ji]i.W:e">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="9};$:/(!;4(W|L,c{-ti">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">alexa2.0.Echo-Devices.G090LV0371040175.Commands.speak</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text_join" id="Gxylg7r02KYYxVUMf/N.">
                              <mutation items="1"></mutation>
                              <value name="ADD0">
                                <block type="text" id="xnMA@S}oO*$ZIu]4sNkk">
                                  <field name="TEXT">Aqua Control,, wurde neu gestartet</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="telegram" id="ecFJQ+D=/X^yD=i{OG~G">
                              <field name="INSTANCE">.0</field>
                              <field name="LOG"></field>
                              <field name="SILENT">FALSE</field>
                              <field name="PARSEMODE">default</field>
                              <value name="MESSAGE">
                                <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="Q8V,~Cj!QY03V`OHi,k6">
                                  <field name="TEXT">text</field>
                                </shadow>
                                <block type="text_join" id="Hums])|=?j!W3:S{az5q">
                                  <mutation items="3"></mutation>
                                  <value name="ADD0">
                                    <block type="text" id="eXjU)~}zb1@Z.A,}T48Z">
                                      <field name="TEXT">Aqua Control</field>
                                    </block>
                                  </value>
                                  <value name="ADD1">
                                    <block type="text_newline" id="Fo7*CXYDrl5~tFn%y30C">
                                      <field name="Type">\n</field>
                                    </block>
                                  </value>
                                  <value name="ADD2">
                                    <block type="text" id="9`s,C3P-Bu7#I1PJzs1k">
                                      <field name="TEXT">wurde neu gestartet</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      

      E5362388-68FB-4711-A320-841A66CD9293.jpeg

      Thomas Braun liv-in-sky 2 Replies Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @Aphofis last edited by

        @Aphofis
        Ich würde vermutlich eher im Router für das Gerät eine IP reservieren. Geht bei den meisten ja.

        Aphofis 1 Reply Last reply Reply Quote 0
        • Aphofis
          Aphofis @Thomas Braun last edited by Aphofis

          @Thomas-Braun
          Das hatte ich schon mehrfach getan!
          Auch einen Namen in der Fritzbox für jedes Gerät vergeben und dann den sendebefehl per Fritzbox Namen versucht! Doch wenn sich die IP ändert ist der Name auch weg.
          Hatte auch schon die Fritzbox zwei mal getauscht.
          Da ich über 70 Geräte in meinem WLAN habe die miteinander kommunizieren ist es nervig allen Geräten immer wieder alles neu zu zu weisen.
          Vor allem sind Wichtige Geräte Dabei, die immer erreichbar sein müssen. Sollten diese nicht erreichbar sein und bleiben im true Zustand stehen sterben vermutlich an die 10000€ weg.
          Die Blockly Schaltungen sind zwar alle abgesichert aber besser wäre der Zugriff per Mac Adresse. Da die Geräte bei fehl Funktion neu gestartet werden und nach einem Neustart automatisch false sind.

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

            @Aphofis

            Ich glaube nicht das die Fritzboxen kaputt waren.
            Unter Heimnetz Netzwerk und dann Netzwerkeinstellungen kannst du einstellen wie lange die IP Adressen ihre Gültigkeit haben sollen.
            20200623_101941.jpg

            Aphofis 1 Reply Last reply Reply Quote 0
            • OstfrieseUnterwegs
              OstfrieseUnterwegs last edited by

              @Aphofis Hast Du bei denen wirklich in der FB den Haken gesetzt? Damit habe ich noch nie Probleme gehabt. Außerdem gibt es bestimmt auch eine Möglichkeit, die Dinger so zu flashen, dass sie eine feste IP haben.
              Annotation 2020-06-23 103248.png

              Aphofis 1 Reply Last reply Reply Quote 0
              • F
                fastfoot last edited by fastfoot

                @Aphofis
                Wie der Ostfriese bereits anmerkte sollte sich die IP nach Anhaken des Feldes nicht mehr ändern(tut sie auch nicht!!!), dennoch hier eine kleine Spielerei, mit der du die IP rausfinden kannst.
                MAC_zu_IP.PNG

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="aQubq9Vy-qj1gT{2OW;x">MAC</variable>
                   <variable id="@[II(5R#h[a47`qET5k.">cmd</variable>
                   <variable id="0@Y{~/hRy0d:vMQ1kCo@">url</variable>
                   <variable id="Fk6H`kq}eo!FPH!Ld2Ii">result</variable>
                 </variables>
                 <block type="variables_set" id="Gj`MNS[$a0S:B!TUcx-%" x="87" y="38">
                   <field name="VAR" id="aQubq9Vy-qj1gT{2OW;x">MAC</field>
                   <value name="VALUE">
                     <block type="text" id="$BiX2(9Qn02xkk6FALgn">
                       <field name="TEXT">12:34:56:78:9a:bc</field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="$c5Ud:#38C(q.uOF_;YC">
                       <field name="VAR" id="@[II(5R#h[a47`qET5k.">cmd</field>
                       <value name="VALUE">
                         <block type="text_join" id="2t+}?FeN#iG0J=~8q#|w" inline="true">
                           <mutation items="3"></mutation>
                           <value name="ADD0">
                             <block type="text" id="EeuWjuYNi.qp7hO{x;@i">
                               <field name="TEXT">arp -a|grep </field>
                             </block>
                           </value>
                           <value name="ADD1">
                             <block type="variables_get" id="tH;y-cdpJdNS0#XCa8{X">
                               <field name="VAR" id="aQubq9Vy-qj1gT{2OW;x">MAC</field>
                             </block>
                           </value>
                           <value name="ADD2">
                             <block type="text" id="/t^Hm3;6![lRLzr3V@FX">
                               <field name="TEXT">|cut -f2 -d" "|cut -f2|cut -c2-16|cut -f1 -d ")"</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="exec" id="Ra4`1SB0/Eog44pt9iJZ" inline="true">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                           <field name="WITH_STATEMENT">TRUE</field>
                           <field name="LOG"></field>
                           <value name="COMMAND">
                             <shadow type="text" id="@QX{2frW2vhyd`CI;c:s">
                               <field name="TEXT">arp -a|grep 24:5e:be:0d:f1:b9|cut -f2 -d" "|cut -f2|cut -c2-16|cut -f1 -d ")"</field>
                             </shadow>
                             <block type="variables_get" id="|uJ{n?p{=za?mcVLIRON">
                               <field name="VAR" id="@[II(5R#h[a47`qET5k.">cmd</field>
                             </block>
                           </value>
                           <statement name="STATEMENT">
                             <block type="variables_set" id="2;J*T*TpGNH`Ml_U^%63">
                               <field name="VAR" id="0@Y{~/hRy0d:vMQ1kCo@">url</field>
                               <value name="VALUE">
                                 <block type="text_join" id="uNUY7tNxUZ3!oh#}bHXB" inline="true">
                                   <mutation items="3"></mutation>
                                   <value name="ADD0">
                                     <block type="text" id="2GJK-1Bvmp)s6NC9.,:2">
                                       <field name="TEXT">http://</field>
                                     </block>
                                   </value>
                                   <value name="ADD1">
                                     <block type="variables_get" id="/Dkdf,;.$]{U?-+%6q]I">
                                       <field name="VAR" id="Fk6H`kq}eo!FPH!Ld2Ii">result</field>
                                     </block>
                                   </value>
                                   <value name="ADD2">
                                     <block type="text" id="W[)hj~HEq7,*GOK28V%|">
                                       <field name="TEXT">/cm?user=ich&amp;passwort=auchich</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="debug" id="?{mh|9:IPCBzf@bm4g=y" inline="true">
                                   <field name="Severity">log</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="g/_Y3S(JG]HJS{wR6YI[">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="variables_get" id="63@w*D4._cHwf:)n~#Nh">
                                       <field name="VAR" id="0@Y{~/hRy0d:vMQ1kCo@">url</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                Aphofis 2 Replies Last reply Reply Quote 1
                • Aphofis
                  Aphofis @haselchen last edited by

                  @haselchen
                  Steht auf 365 Tage trotz dessen werden mancheN ESPs Bei Neustart sporadisch neue IP Adressen zugewiesen.

                  1 Reply Last reply Reply Quote 0
                  • Aphofis
                    Aphofis @OstfrieseUnterwegs last edited by

                    @OstfrieseUnterwegs
                    Ja so sind meine Geräte auch alle fixiert

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

                      Das ist extrem merkwürdig. Normalerweise meldet sich ja ein Gerät beim DHCP-Server mit seiner MAC adresse und der DHCP guckt ob

                      • die MAC immer die selbe IP bekommen soll
                      • er die MAC kennt und der Lease noch läuft, dann gibts die vorige wieder
                      • weder noch, dann eine neue aus dem DHCP Pool

                      Sind es immer die selben ESP, die neue IPs bekommen?

                      Noch ne idee: Bist Du sicher, dass sie sich die IP auch von der Fritzbox holen? Wenn sie dort hinch hin kommen, generieren sie sich vlt was eigenes?

                      Aphofis 1 Reply Last reply Reply Quote 0
                      • Aphofis
                        Aphofis @fastfoot last edited by

                        @fastfoot ich werde das mal testen! Danke.
                        Damit kann man doch sicherlich per Mac Adresse die IP auslesen und anstatt in die Debug schreiben in einen Datenpunkt legen und die Neustart Blocklys nehmen die IP aus den Datenpunkten

                        1 Reply Last reply Reply Quote 0
                        • Aphofis
                          Aphofis @OstfrieseUnterwegs last edited by

                          @OstfrieseUnterwegs
                          also verbuden sind meine Geräte mit einem eigenen Router der nur für die Aquarium steuerung ist also so zu sagen ein WLAN System für sich! alle anderen Geräte verbinden sich normal mit der Fritzbox.
                          Der Aquarium Router ist ein TP-Link. Seid dem haben alle Geräte die selbe Ip Adresse nur ab und an bekommen 3 Geräte mal eine andere IP und nach einem weiteren Neustart wieder ihre eigentliche IP. Ja sind immer die selben 3 Geräte sind alle identisch geflashed und ist auch die neueste Tasmota Software drauf.

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

                            Und der TP-Link hat auch ein eigenes subnet? Also dein Aqaurium-Netz z.b. 192.168.1.x und dein anderes 192.168.0.x ? Ich weiss nicht, was passiert, wenn in einem Subnetz zwei DHCP Server werkeln.

                            Aphofis 1 Reply Last reply Reply Quote 0
                            • Aphofis
                              Aphofis @OstfrieseUnterwegs last edited by Aphofis

                              @OstfrieseUnterwegs
                              ne ne also Haupt DHCP ist die Fritzbox und TP-Link läuft an LAN3 und vergibt darüber IP Adressen an die Geräte die per WLAN verbinden. die in der Fritzbox fixiert sind.
                              Im TP link sind per MAC Adresse nur die erlaubten Geräte per MAC Filter erlaubt.
                              Netz ist bei allen das selbe: 192.168.0.X

                              1 Reply Last reply Reply Quote 0
                              • Aphofis
                                Aphofis @fastfoot last edited by Aphofis

                                @fastfoot

                                im LOG steht dann nur

                                			
                                javascript.0	2020-06-23 18:52:44.383	info	(3831) script.js.ESP_Reboot.Aqu_Control_IP_Abfrage: http:///cm?user=Mein_Benutzername&password=Mein_Passwort
                                javascript.0	2020-06-23 18:52:44.356	info	(3831) script.js.ESP_Reboot.Aqu_Control_IP_Abfrage: registered 0 subscriptions and 0 schedules
                                javascript.0	2020-06-23 18:52:44.336	info	(3831) Start javascript script.js.ESP_Reboot.Aqu_Control_IP_Abfrage
                                

                                mehr nicht

                                In der Datenpunkt ausgabe die ich dazu gepackt hatte steht auch nur

                                http://cm?user=Benutzer&password=Passwort
                                
                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @Aphofis last edited by liv-in-sky

                                  @Aphofis

                                  hast du arp installiert ? ist z.b. bei mir nicht installiert https://www.computerhope.com/unix/arp.htm

                                  ich hätte ein script, mit dem habe ich über Nmap ein liste (json) mit ip und macadresse von meinem netzwerk erzeugt wird - falls interesse - die liste könnte man dann auch abfragen - wobei die lösung von @fastfoot recht gut finde - dieses script kommt als "ausschuß" von dieser tabelle: https://forum.iobroker.net/topic/30057/ip-devices-im-netzwerk-html-tabelle-vis-iqontrol

                                  Aphofis 1 Reply Last reply Reply Quote 1
                                  • Aphofis
                                    Aphofis @liv-in-sky last edited by Aphofis

                                    @liv-in-sky
                                    Klingt gut!
                                    Das über Blockly finde ich Top nur gibt die Ausgabe nicht den gewünschten effekt Also das soll doch die IP adresse zu der abgefragten MAC Adresse raus oder nicht
                                    Nein ARP habe ich nicht installiert! Was denn das für ein Adapter kenne ich nicht

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @Aphofis last edited by

                                      @Aphofis

                                      kein adapter

                                      sein blockly nutzt exec - das bedeutet, es ruft einen linux befehl auf - das blockly geht auf die linux ebene !

                                      und bitte kontrollieren:
                                      hast du exec im javascript-instanz aktiviert ?

                                      Image 2.png

                                      Aphofis 1 Reply Last reply Reply Quote 1
                                      • Aphofis
                                        Aphofis @liv-in-sky last edited by

                                        @liv-in-sky
                                        Ja na klar EXEC ist aktiv! Ich habe mehrere von meinen aktiven 117 Aquarium Blockly Steuerungen die per EXEC Abfragen empfangen bzw senden.

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @Aphofis last edited by

                                          @Aphofis wenn du mal eine console auf deinem server öffnest (nehme an linux?) , dann gib mal arp ein - dann siehst du, ob es installiert ist

                                          Aphofis 1 Reply Last reply Reply Quote 1
                                          • Aphofis
                                            Aphofis @liv-in-sky last edited by Aphofis

                                            @liv-in-sky
                                            moment
                                            ...........
                                            ist es richtog, das arp alle verbundenen Geräte mit MAC adresse auflistet!?

                                            liv-in-sky 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            525
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            158
                                            9428
                                            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