NEWS
[gelöst] Gerät per Mac Adr & Blockly ansprechen
-
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&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>
-
@Aphofis
Ich würde vermutlich eher im Router für das Gerät eine IP reservieren. Geht bei den meisten ja. -
@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. -
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.
-
@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.
-
@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.
-
@haselchen
Steht auf 365 Tage trotz dessen werden mancheN ESPs Bei Neustart sporadisch neue IP Adressen zugewiesen. -
@OstfrieseUnterwegs
Ja so sind meine Geräte auch alle fixiert -
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?
-
@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 -
@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. -
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.
-
@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 -
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
-
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
-
@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 -
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 ? -
@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. -
@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
-
@liv-in-sky
moment
...........
ist es richtog, das arp alle verbundenen Geräte mit MAC adresse auflistet!?