❤️ 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. 🌱
>> 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"
Gelöst: Fritz!Box Port 1012 "abhören"
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
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.

Re: Fritz!Box Port 1012 auslesen
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.

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
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
Re: Fritz!Box Port 1012 auslesen
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
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
Re: Fritz!Box Port 1012 auslesen
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
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

Re: Fritz!Box Port 1012 "abhören"
mach' Dich mit dem Befehl
vertraut - das ist das os.system("...") Pendant.
Code: Alles auswählen
shell
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
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
Re: Fritz!Box Port 1012 "abhören"
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
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

Re: Fritz!Box Port 1012 "abhören"
Code: Alles auswählen
gnome-terminal --command='/bin/nc -w 60 fritz.box 1012' >> /tmp/MeinFritzboxLog.log
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
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
Re: Fritz!Box Port 1012 "abhören"
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 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
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
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

Re: Fritz!Box Port 1012 "abhören"
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.
???
überwacht Änderungen an der Datei "/pfad/zur/Datei" und führt bei einer Änderung das Makro standard.module1.macro_x aus...
Code: Alles auswählen
nc -W 1 fritz.box 1012 > /home/.../test.txt &
... und dann macht Dein Basic-Code genau dasNur 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.

Code: Alles auswählen
while true; do inotifywait -e modify /pfad/zur/Datei && /usr/bin/libreoffice macro:///standard.module1.macro_x; done
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
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
Re: Fritz!Box Port 1012 "abhören"
Danke gogo. Deine Erklärung zu Deinem ersten Script verhalf mir dazu, ohne externes Bash-Script auszukommen. 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
shell("/bin/bash",6,"-c 'nc -W 1 fritz.box 1012 > "+aFile+"'",True)
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

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.