MAC Adressen aus eine Textdatei auslesen wegen PRESENCE

Begonnen von Groej, 30 März 2018, 15:12:57

Vorheriges Thema - Nächstes Thema

Groej

Hallo und erstmal frohe Ostern,

da ich keine Fritzbox habe sondern einen DRAYTEK Router versuche ich ich mir ein Presence Modul zu basteln. Ich dachte mir ich lese per Telnet die DHCP Tabelle des Draytek aus und schreibe diese in eine Datei.
Jetzt kommt aber wieder das Problem was ich immer hab weil ich es einfach nicht kapiere wies es geht. Wie kann ich aus dieser Datei jetzt die MAC Adressen einzeln auslesen um sie dann in einen Dummy als Reading zu schreiben damit es so wie bei der Fritzbox wäre?

Hier mal der Inhalt der Datei (nicht wundern hab die HOST ID rausgenommen und die IP Adressen etwas geändert):

Trying 192.168.xx.xx...
Connected to 192.168.xx.xx.
Escape character is '^]'.

Account:*******
^MPassword: *****

User login successful, expired time is "Unlimited".


^MType ? for command help

^MGroejNet-Berlin> srv dhcp status lan1
^MLAN1       : DHCP Server On    IP Pool: 192.168.xx.xx ~ 192.168.xx.xx
^M             Default Gateway: 192.168.xx.xx
^M--------------------------------------------------------------------------------
^MIndex IP Address      MAC Address             Leased Time     HOST ID
^M--------------------------------------------------------------------------------
^M1     192.168.xx.xx   88-71-E5-FB-E7-04       22:43:48       
^M2     192.168.xx.xx   F0-81-73-EA-FB-8E       20:56:49       
^M3     192.168.xx.xx   A0-02-DC-EA-27-B5       21:52:46       
^M4     192.168.xx.xx   A0-20-A6-19-AC-0E       23:22:13       
^M5     192.168.xx.xx   60-01-94-55-F7-8D       21:02:41       
^M6     192.168.xx.xx   EC-10-7B-0F-47-9B       23:22:43       
^M7     192.168.xx.xx   F8-B1-56-AF-25-C6       20:23:14       
^M8     192.168.xx.xx   C4-73-1E-D5-8F-C9       22:31:57
^M9     192.168.xx.xx   D8-49-2F-39-2B-32       23:53:44
^M10    192.168.xx.xx   60-01-94-14-E1-7A       23:58:42     
^M11    192.168.xx.xx   2C-3A-E8-31-57-46       21:02:41     

^MGroejNet-Berlin> exit


Danke für Eure Hilfe.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

CoolTux

Wieso willst du das in eine Datei schreiben und dann von FHEM die Datei auslesen?
Lass dich fhem die Daten direkt per telnet holen. Schau Dir das Fritzbox Modul an, da sollten noch Teile vom telnet Code vorhanden sein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Groej

Hallo CoolTux,

danke für den Tipp aber da muß ich ja dann auch irgendwie die MAC Adressen einzeln auslesen und das ist bestimmt anders als bei der FritzBox. Ich schau mir das aber erstmal an.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

CoolTux

Hallo Jörg

Wieso einzeln, du hast doch oben auch nur einen telnet Befehl eingegeben und somit die Liste bekommen.
srv dhcp status lan1

Nichts anderes sollte der telnet Befehl aus FHEM heraus abgesetzt machen. Musst halt ne 99_myUtils schreiben wo Du dann in einer Sub die telnet Anmeldung und ausführen des Befehles machst.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Wo ist das Problem?

Den Dateiinhalt mit FileRead() einlesen, dann liegen alle Zeilen in einem Array vor und lassen sich auf einfachste Weise in FHEM weiterverarbeiten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Das Problem ist der Unsinn des doppelten Abarbeiten. Einmal Daten holen und in Datei schreiben und dann auslesen und in FHEM verarbeiten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Groej

Und genau das Array einlesen begreife ich immer nicht. :(
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

betateilchen

Zitat von: CoolTux am 31 März 2018, 17:08:18
Das Problem ist der Unsinn des doppelten Abarbeiten.

Das ist kein Unsinn, sondern erspart eine Menge möglicher Problemfälle und Störfaktoren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Groej

Moin,

nu mal nicht streiten :). Ich formuliere meine Fragestellung mal um.

Wie bekomme ich aus der Datei die MAC Adressen ausgelesen und in einen Dummy geschrieben?

Ein Bespiel ist im ersten Beitrag bei dem Thema zu sehen.

Schönen Ostersonntag Euch allen hier.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Groej

Hallo,

alles klar da muß ich mich mal in Ruhe mit beschäftigen. Sieht heftig aus für mich als blutiger Anfänger in Programmierung in Perl. Mach zwar ein wegen mit Arduino und Co was aber ich wurstel mich da schon irgendwie durch.

Lese ich das gerade richtig das es dann Zeilenweise ausgegeben wird? Also muß ich ja aus jeder Zeile ja noch die MAC Adresse extrahieren.

Danke

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

CoolTux

Zitat von: Groej am 01 April 2018, 10:11:02
Hallo,

alles klar da muß ich mich mal in Ruhe mit beschäftigen. Sieht heftig aus für mich als blutiger Anfänger in Programmierung in Perl. Mach zwar ein wegen mit Arduino und Co was aber ich wurstel mich da schon irgendwie durch.

Lese ich das gerade richtig das es dann Zeilenweise ausgegeben wird? Also muß ich ja aus jeder Zeile ja noch die MAC Adresse extrahieren.

Danke

Gruß

Jörg

Ja das musst Du machen. Entweder RegEx verwenden oder versuchen mit split das hinzu biegen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Groej

#12
So hat mir keine Ruhe gelassen :).

Soweit hab ich das schon mal hingebkommen (siehe Bild). Jetzt muß ich ja quasi vom ersten bis zum zweiten TAB auslesen bzw. Leerzeichen.


FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

CoolTux

Am besten ist Du gibst hier mal Deinen Code in Codetags ein und wir schauen.
Auf den ersten Blick würde ich ja sagen Du hast was Du wolltest  ;D Aber ich gehe mal davon aus das Du nur die Mac Adressen haben willst, richtig. Da wäre vielleicht etwas Rohdaten nicht schlecht. Also wie stehen die Daten dann im Array zur Verfügung. Kannst die Daten auch gerne verfälschen, bitte nur nicht die Struktur ändern.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Groej

Also der Inhalt der Datei steht ja ganz oben im Thema. Hab da nur die IP Adressen geändert und die HOST ID rausgelöscht.  Ja brauch nur die MAC Adressen und sonst nichts.

Blöde Frage was ist CODETAGS?
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280