NEWS
IP Adressen abgleich
-
Hey Ho @paul53
seid dem ich das neue Aquarium laufen habe und mit einer neueren Version vom Iobroker (js-controller) etc gibt die Steuerung von dir einen Fehler aus, weißt du was da falsch ist !?
Fehler:javascript.0 (1399) at script.js.AquaPi.ESP_IP_MAC_Abgleich.Aqua_Control:12:5Blockly
1 var MAC, cmd, ip, result; 2 3 4 MAC = '2c:f4:32:57:b7:14'; 5 // ermittelt den Gerätenamen 6 cmd = ['arp -a|grep ',MAC,'|cut -f1 -d" "'].join(''); 7 // ermittelt IP-Adresse 8 cmd = ['arp -a|grep ',MAC,'|cut -f2 -d"("|cut -f1 -d")"'].join(''); 9 exec(cmd, async (error, result, stderr) => { 10 ip = ('' + result).trim(); 11 if (!(ip == '')) { 12 setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Control' /* Aqua_Control */, ip, true); 13 } else { 14 console.log('Keine IP Adresse gefunden!'); 15 } 16 }); -
Hey Ho @paul53
seid dem ich das neue Aquarium laufen habe und mit einer neueren Version vom Iobroker (js-controller) etc gibt die Steuerung von dir einen Fehler aus, weißt du was da falsch ist !?
Fehler:javascript.0 (1399) at script.js.AquaPi.ESP_IP_MAC_Abgleich.Aqua_Control:12:5Blockly
1 var MAC, cmd, ip, result; 2 3 4 MAC = '2c:f4:32:57:b7:14'; 5 // ermittelt den Gerätenamen 6 cmd = ['arp -a|grep ',MAC,'|cut -f1 -d" "'].join(''); 7 // ermittelt IP-Adresse 8 cmd = ['arp -a|grep ',MAC,'|cut -f2 -d"("|cut -f1 -d")"'].join(''); 9 exec(cmd, async (error, result, stderr) => { 10 ip = ('' + result).trim(); 11 if (!(ip == '')) { 12 setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Control' /* Aqua_Control */, ip, true); 13 } else { 14 console.log('Keine IP Adresse gefunden!'); 15 } 16 });@aphofis ohne Zeilennummern nicht gar so einfach
12:5 ist das 5. Zeichen der 12. Zeile.gibt es den State noch?
-
@aphofis ohne Zeilennummern nicht gar so einfach
12:5 ist das 5. Zeichen der 12. Zeile.gibt es den State noch?
Mahlzeit @paul53 ist es möglich das so zu gestalten, das wenn zu der MAC Adresse keine IP geliefert wird im Datenpunkt wo die IP eingetragen wird dann 0.0.0.0 aktualisiert wird.
Das was ich versucht hatte geht nicht.var MAC, cmd, ip, result; MAC = '50:02:91:67:cf:da'; // ermittelt den Gerätenamen cmd = ['arp -a|grep ',MAC,'|cut -f1 -d" "'].join(''); // ermittelt IP-Adresse cmd = ['arp -a|grep ',MAC,'|cut -f2 -d"("|cut -f1 -d")"'].join(''); exec(cmd, async (error, result, stderr) => { ip = ('' + result).trim(); if (!(ip == '')) { setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, ip, true); } else { console.info('Keine IP Adresse gefunden!'); if (getState('sonoff.0.Aqua_Float.alive').val == false) { setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, (('' + '0.0.0.0').trim()), true); } } }); -
Mahlzeit @paul53 ist es möglich das so zu gestalten, das wenn zu der MAC Adresse keine IP geliefert wird im Datenpunkt wo die IP eingetragen wird dann 0.0.0.0 aktualisiert wird.
Das was ich versucht hatte geht nicht.var MAC, cmd, ip, result; MAC = '50:02:91:67:cf:da'; // ermittelt den Gerätenamen cmd = ['arp -a|grep ',MAC,'|cut -f1 -d" "'].join(''); // ermittelt IP-Adresse cmd = ['arp -a|grep ',MAC,'|cut -f2 -d"("|cut -f1 -d")"'].join(''); exec(cmd, async (error, result, stderr) => { ip = ('' + result).trim(); if (!(ip == '')) { setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, ip, true); } else { console.info('Keine IP Adresse gefunden!'); if (getState('sonoff.0.Aqua_Float.alive').val == false) { setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, (('' + '0.0.0.0').trim()), true); } } });@aphofis sagte: keine IP geliefert wird im Datenpunkt wo die IP eingetragen wird dann 0.0.0.0 aktualisiert wird.
Was liefert dann
result?
Einen Leerstring oder null? Dann prüft man einfachif(!result) { ip = '0.0.0.0'; log('Keine IP Adresse gefunden!'); } else ip = ('' + result).trim(); setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, ip, true);
-
@aphofis sagte: keine IP geliefert wird im Datenpunkt wo die IP eingetragen wird dann 0.0.0.0 aktualisiert wird.
Was liefert dann
result?
Einen Leerstring oder null? Dann prüft man einfachif(!result) { ip = '0.0.0.0'; log('Keine IP Adresse gefunden!'); } else ip = ('' + result).trim(); setState('0_userdata.0.Aqua_Control.0.IP_MAC_Abgleich.Aqua_Float_IP' /* Aqua_Float_IP */, ip, true);
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
