❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Gelöst: Fritz!Box Port 1012 "abhören"

Alles zur Programmierung im LibreOffice.
herz4
Beiträge: 66
Registriert: Sa 17. Dez 2016, 16:11

Gelöst: Fritz!Box Port 1012 "abhören"

Beitrag von herz4 » Mi 18. Sep 2019, 11:14

Hallo verehrte Forennutzer,

ich möchte den Stream des Ports 1012 der Fritz!Box im LAN aus LOBasic heraus lesen, auf dessen Ereignismeldungen reagieren können.

Es ist ein unkodierter, zeilenweiser, etwa der Form "18.09.19 10:25:06;CALL;...", oder auch "...RING...", "...[DIS]CONNECT..." mit weiteren Angaben zu den Nummern usw.

Ich lasse meinen PC aus einem Formular einer Datenbank heraus die gewünschte Nummer anwählen und muss dann den Hörer abnehmen für das Gespräch; zum Beispiel könnte mir der eingelesene Stream das Abheben bei Besetzt ersparen.

(Ich lese den Stream auf einem RaspberryPi aus und logge diesen auch. Auch kann ich auf diese Log-Datei zugreifen. Jedoch ist mir diese für meinen Zweck notwendig ständige Abfrage der Datei nach neuen Einträgen zu sehr Resourcen belastend.)

Habe keine Idee, wie ich mit LOBasic-Mitteln auf den Port der Fritz!Box "hören" kann, - listen - ?!

Bin gespannt auf Anregungen!

Mit bestem Gruß
herz4
Zuletzt geändert von herz4 am Mi 25. Sep 2019, 19:13, insgesamt 2-mal geändert.
:? 2025-02-09 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 6.8, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 Server/extern mit org.hsqldb.jdbcDriver

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Fritz!Box Port 1012 auslesen

Beitrag von gogo » Do 19. Sep 2019, 07:50

Da musst Du Bordmittel Deines OS nutzen - LO ist Bürosoftware und kein Betriebssystem (auch wenn's in einer JVM läuft ;) )
Dein OS kann vermutlich auch aus der Überwachung des Ports heraus ein LO-Makro starten um LO -was-auch-immer- mitzuteilen.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Wanderer
* LO-Experte *
Beiträge: 909
Registriert: Di 11. Feb 2014, 20:03
Wohnort: Berlin

Re: Fritz!Box Port 1012 auslesen

Beitrag von Wanderer » Do 19. Sep 2019, 08:11

Hallo,

Du müsstest eine Möglichkeit finden einen Socket von Basic aus zu öffnen, also IP:1012 wobei IP die Adresse Deiner Fritzbox ist.

Das jemand eine entsprechende Bibliothek in Basic für OO oder LO eingebaut hat wäre mir neu.

Bei LibreOffice kann ich da nur empfehlen bei Python zu schauen. Ich würde da sogar eher versuchen die Box mit einem externen Python-Programm zu überwachen und dann bei Bedarf das entsprechende Office-Dokument zu öffnen, bzw ferngesteuert von Python mit Daten zu füllen.

Mfg, Jörn
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit

herz4
Beiträge: 66
Registriert: Sa 17. Dez 2016, 16:11

Re: Fritz!Box Port 1012 auslesen

Beitrag von herz4 » Do 19. Sep 2019, 08:24

Guten Morgen Jörn und gogo.

Ich hatte mittlerweile hier https://www.uni-due.de/~abi070/count.ph ... eutsch.pdf etwas gelesen von "10.14.4. Streams, Pipes und Sockets" und daraus Hoffnung geschöpft. Ist die völlig(!) vergeblich?

Jedoch ist mir der Hinweis auf Python gefällig. Da gibt es ganz sicher Möglichkeiten, um an dem Port zu lauschen. Nur ich weiß noch nicht, wie ich dann aus Python ein Makro in LO anschubse? Oder anders, ist es möglich, ein LO-Basic-Macro ein Python-Script abarbeiten und auf - dessen - Antwort warten zu lassen?

MbG, herz4
:? 2025-02-09 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 6.8, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 Server/extern mit org.hsqldb.jdbcDriver

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Fritz!Box Port 1012 "abhören"

Beitrag von gogo » Do 19. Sep 2019, 10:51

mach' Dich mit dem Befehl

Code: Alles auswählen

shell
vertraut - das ist das os.system("...") Pendant.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

herz4
Beiträge: 66
Registriert: Sa 17. Dez 2016, 16:11

Re: Fritz!Box Port 1012 "abhören"

Beitrag von herz4 » Do 19. Sep 2019, 12:08

Ja, gogo.

Mit shell habe ich bereits per "gnome-terminal --command='/bin/nc -w 60 fritz.box 1012'" ein Terminalfenster eingeblendet, in dem mir nun CALL und CONNECT etc. gelistet werden. Diese muss ich aber selber lesen ...

Nur ich kann damit nicht LOBasic anstoßen. Der Stream "kommt" ja immer nur, wenn Fritz!Box ein IP-Telefon-Ereignis zu vermelden hat, eben dann eine neue Zeile. Mir reichte es streng genommen, wenn LOBasic registrierte, - dass - da ein IP-Telefon-Ereignis gemeldet wurde. Dieses selbst für LOBasic bestimmen kann ich per erwähntem Log. Nur muss LOBasic dazu angestoßen werden!

Ich zweifle, ob ich mich verständlich ausgedrückt habe. Bitte sagt mir, wenn ich "auf'm Schlauch stehe"!

MdG, herz4
:? 2025-02-09 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 6.8, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 Server/extern mit org.hsqldb.jdbcDriver

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Fritz!Box Port 1012 "abhören"

Beitrag von gogo » Fr 20. Sep 2019, 18:08

Code: Alles auswählen

gnome-terminal --command='/bin/nc -w 60 fritz.box 1012' >> /tmp/MeinFritzboxLog.log
schreibt was da so kommt in das logfile (/tmp/MeinFritzboxLog.log). Das musst Du dann überwachen, LO eignet sich dazu, besser wäre aber mit inotify zu arbeiten. Programme die auch an Hardwareports lauschen/senden können (ähnlich wie nc) sind z.B. stty oder cutecom - sind glaub' ich beide in den Repos.
Schau' mal auf wiki.ubuntuusers.de/ - da gibt's jede Menge Infos zu Linux die weit über das hinausgehen was man täglich so braucht ;)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

herz4
Beiträge: 66
Registriert: Sa 17. Dez 2016, 16:11

Re: Fritz!Box Port 1012 "abhören"

Beitrag von herz4 » Fr 20. Sep 2019, 19:19

Danke, gogo, für Deine Anregung.

Ich schrieb schon oben, dass ich genau so - ständig - eine Logdatei erstelle, via RaspberryPi.

Nur müsste ich diese Datei auch ständig auslesen, und noch dazu in der letzten Zeile, die neueste. Dieses ständige Lesen scheint mir unverhältnismäßig.

Gerade heute habe ich eine bessere Möglichkeit gefunden. Mit

Code: Alles auswählen

nc -W 1 fritz.box 1012 > /home/.../test.txt
wird nur eine Zeile geschrieben. Dies stoße ich aus LOBasic an (im shell-Befehl ganz hinten ein "True", damit das Basic-Makro so lange wartet), diese Zeile lese ich gleich danach ein, analysiere sie, um hernach wieder neu mit gleichem nc-Befehl den Port zu scannen, usw. usf.

Basic ist trotz der analysierenden Schleife so schnell(!), dass selbst zwei kurz hintereinander kommende Fritz!Box-Meldungen wie etwa "CALL" und noch in gleicher Sekunde "DISCONNECT" bei "Besetzt" - bisher - einwandfrei ausgelesen werden. Ich bin damit dem Anrufmonitor so weit näher gekommen, dass ich ihn in den nächsten Tagen damit zum Laufen bringen möchte.

Kleiner Wermutstropfen: Den obigen nc-Befehl bekomme ich nicht - direkt - erfolgreich per shell-Befehl abgesetzt, sondern ich musste ihn in eine Bash-Datei "verpacken". Das direkte geht noch mit Terminalfenster, aber nicht mehr ohne und mit(!) der Ausgabeumleitung in die Datei. Zumindest hört da mein "Latein" auf. Auch bei "inotify", "stty" und "cutecom" muss ich mich erst noch belesen; möchte ich aber noch vor "meiner Weiterentwicklung" verstehen, weil mutmaßlich noch besser ;-)

Nochmals dankend
herz4
:? 2025-02-09 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 6.8, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 Server/extern mit org.hsqldb.jdbcDriver

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Fritz!Box Port 1012 "abhören"

Beitrag von gogo » Sa 21. Sep 2019, 22:59

Die Umleitung ist eine Shell-Funktion, geht also nur in einer solchen, daher musst Du eine shell (welche auch immer) aufrufen. Den Prozess musst Du dann von der shell trennen, der läuft ja sonst als child der shell nur solange diese existiert - das erledigst Du indem Du ein & an den Befehl hängst.

Code: Alles auswählen

nc -W 1 fritz.box 1012 > /home/.../test.txt &
Nur müsste ich diese Datei auch ständig auslesen, und noch dazu in der letzten Zeile, die neueste. Dieses ständige Lesen scheint mir unverhältnismäßig.
... und dann macht Dein Basic-Code genau das ;) ???

Code: Alles auswählen

while true; do inotifywait -e modify /pfad/zur/Datei && /usr/bin/libreoffice macro:///standard.module1.macro_x; done
überwacht Änderungen an der Datei "/pfad/zur/Datei" und führt bei einer Änderung das Makro standard.module1.macro_x aus...
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

herz4
Beiträge: 66
Registriert: Sa 17. Dez 2016, 16:11

Re: Fritz!Box Port 1012 "abhören"

Beitrag von herz4 » So 22. Sep 2019, 08:39

Danke gogo. Deine Erklärung zu Deinem ersten Script verhalf mir dazu, ohne externes Bash-Script auszukommen.

Code: Alles auswählen

shell("/bin/bash",6,"-c 'nc -W 1 fritz.box 1012 > "+aFile+"'",True)
Allerdings musste ich da auf das "&" am Ende verzichten. Es soll der Prozess - bei meiner Anforderung - ja gerade nicht abgekoppelt werden, sondern auf die nc-Ausgabe in die referenzierte Datei gewartet werden. Hernach geht es im Basic-Macro weiter ...

Das zweite Bash-Script eröffnet mir die Möglichkeit, von der Systemebene ein LO-Macro ausführen zu lassen. Diese prinzipielle Möglichkeit kannte ich bisher noch gar nicht. Geht das so weit, dass ich diesem Macro auch noch einen Parameter, hier wünschenswert die von nc gelesene Zeile mit übergeben kann, vielleicht etwa so oder ähnlich?

Code: Alles auswählen

nc -W 1 fritz.box 1012 | /usr/bin/libreoffice macro:///standard.module1.macro_x
:? 2025-02-09 Linux Mint 20.1 64bit Ulyssa base: Ubuntu 20.04 focal, Cinnamon 4.8.6, Linux-Kernel 6.8, LO Version: 6.4.7.2 Build-ID: 1:6.4.7-0ubuntu0.20.04.9, HSQL Database Engine 2.5.0 Server/extern mit org.hsqldb.jdbcDriver


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten