Running terkin.py on Windows

Introduction

Coming from Kontinuierliche Verbesserungen des Terkin-Datenloggers (600er), we are clearing any obstacles for running terkin.py on Windows.

Goal

The goal is to build a network scanner like the LAN sweeper for doing things like ESP32 network discovery through LAN IP scanning and Ethernet ARP monitoring. While the unlocking is sometimes painful, Windows support is important to us and the community.

Status quo

The MicroTerkin Agent has been built and it works reasonably well. Thanks for your support.

Nach git pull, dann pip install scapy netifaces netaddr und sudo python3 tools/terkin.py monitor kommt bei mir unter WSL

root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# sudo python3 tools/terkin.py monitor
  File "tools/terkin.py", line 38
    log.info(f'Hostname "{hostname}" found at IP address "{ip_address}"')
                                                                       ^
SyntaxError: invalid syntax

Hi @clemens,

Holzweg WSL

Das führt unter WSL leider nicht zum Ziel. Python muss hier auf die unteren Netzwerkschichten zugreifen und dafür fehlen dem WSL die notwendigen Möglichkeiten.

Lösung

Nativ unter Windows installiert sollte das klappen, am komfortabelsten ĂĽber Anaconda.


P.S.: Syntaxfehler

Der Syntaxfehler deutet darauf hin, dass entweder Python2 verwendet wurde, oder die verwendete Python3 Version zu alt ist. Python 3's f-Strings: An Improved String Formatting Syntax (Guide) – Real Python gibt es seit Python3.6, siehe auch PEP 498 -- Literal String Interpolation | Python.org und formatted string literals (new in version 3.6). Dieses Problem sollte sich in Luft auflösen, wenn man mit einem aktuellen Anaconda-Python losfliegt.

Uns erreichten Einwände, dass die Größe des Installationspakets mit 500MB doch recht stark aufträgt.

Das ist nicht korrekt.

Wir haben oben die komfortabelste Lösung unter Windows aufgezeigt. Wenn man Linux oder macOS nutzt, muss man sich nicht extra 500MB installieren, sondern hat es schon vorher getan.

Für das reine Auffinden des Geräts gibt es auch unter Windows leichtgewichtigere Möglichkeiten, so haben es @vinz und @Diren bisher getan:

Das ist absolut in Ordnung und superpraktisch.

Wer jedoch das volle Brett mit “Anstecken. Plopp. Wartungsmodus. Yeah.” in der vollintegrierten plug & play Luxusvariante genießen will und auf Windows unterwegs ist, muss hier tiefer in die Tasche greifen und ggf. die Flatrate aufstocken.

P.S.: Wenn man nicht Anaconda installieren will, kann man sich auch das ganz normale aktuellste Python3.x für Windows nativ holen. Die Installation jenes Basisgeräts wiederum erfolgt am komfortabelsten über den Paketmanager “Chocolatey” – bei Installing command line programs haben wir eine entsprechende Anleitung. Die Python-Pakete installiert man in diesem Fall wie gehabt per pip3.

P.P.S.: Wenn man schnell genug ist, kann man das Gerät auch zu Fuß in den Wartungsmodus versetzen à la:

echo 'maintenance.enable()' | ncat --udp 192.168.178.20 666

Hatte python 3.7 schon drauf und in der windows power shell als Admin mit
pip install scapy netifaces netaddr die anderen Pakete installiert, nun bin ich ins Verzeichnis

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware>

gewechselt und habe dort mit

python tools/terkin.py monitor

das hier bekommen:

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\netaddr\strategy\ipv4.py", line 125, in str_to_int
    return _struct.unpack('>I', _inet_pton(AF_INET, addr))[0]
  File "C:\Python37\lib\site-packages\netaddr\fbsocket.py", line 148, in inet_pton
    return _inet_pton_af_inet(ip_string)
  File "C:\Python37\lib\site-packages\netaddr\fbsocket.py", line 136, in _inet_pton_af_inet
    raise invalid_addr
ValueError: illegal IP address string 'fe80::f908:fdb9:8804:4b32%20'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 311, in __init__
    self._value = self._module.str_to_int(addr, flags)
  File "C:\Python37\lib\site-packages\netaddr\strategy\ipv4.py", line 129, in str_to_int
    raise AddrFormatError('%r is not a valid IPv4 address string!' % addr)
netaddr.core.AddrFormatError: 'fe80::f908:fdb9:8804:4b32%20' is not a valid IPv4 address string!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 791, in parse_ip_network
    ip = IPAddress(val1, module.version, flags=INET_PTON)
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 314, in __init__
    % (addr, self._module.version))
netaddr.core.AddrFormatError: base address 'fe80::f908:fdb9:8804:4b32%20' is not IPv4

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 928, in __init__
    implicit_prefix, flags)
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 795, in parse_ip_network
    expanded_addr = _ipv4.expand_partial_address(val1)
  File "C:\Python37\lib\site-packages\netaddr\strategy\ipv4.py", line 259, in expand_partial_address
    raise error
netaddr.core.AddrFormatError: invalid partial IPv4 address: 'fe80::f908:fdb9:8804:4b32%20'!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "tools/terkin.py", line 259, in <module>
    run_monitor(mac_prefix, command)
  File "tools/terkin.py", line 253, in run_monitor
    boot_monitor(monitor)
  File "tools/terkin.py", line 231, in boot_monitor
    networks = get_local_networks()
  File "tools/terkin.py", line 224, in get_local_networks
    address_cidr = str(netaddr.IPNetwork(address).cidr)
  File "C:\Python37\lib\site-packages\netaddr\ip\__init__.py", line 938, in __init__
    raise AddrFormatError('invalid IPNetwork %s' % addr)
netaddr.core.AddrFormatError: invalid IPNetwork fe80::f908:fdb9:8804:4b32%20/ffff:ffff:ffff:ffff::/64
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware>

Danke @clemens. Attempt to fix woes with IPv6 addresses from "terkin.py" · hiveeyes/hiveeyes-micropython-firmware@8852af0 · GitHub könnte für Abhilfe sorgen, just try to start over after yet another "git pull". Thanks.

Um die IP bei Windows zu fuß rauzufinden geht´s auch über die cmd

arp -a | find “80-7d-3a”

wenn dort mehrere Geräte aufgelistet werden, muß man den Cache vorher löschen.
DafĂĽr muss man allerdings die cmd mit Adminrechten ausfĂĽhren.

netsh interface ip delete arpcache

@Andreas kann man nicht machen, das man bei tools/terkin.py auch noch die IP Adresse als Parameter manuell ĂĽbergeben kann?
wenn man bei make sketch and run aufgepasst hat, steht die ip ja auch leicht auffindbar im Log nach dem Verbindungsaufbau.
Gibt dann halt nur Probleme, wenn die IP im Router über DHCP nicht “statisch” vergeben wird.

1 Like

Auf jeden Fall. Wenn sie stabil bleibt, ist das Gerät allerdings ohnehin meist nicht mehr im deep sleep. Sobald es im deep sleep ist, wechselt die IP Adresse ja meist mit jedem Durchlauf.

Momentan fliegt das Tool terkin.py zwar komplett auf Autopilot, um schnell genug zu sein, das Henne-Ei Problem zu lösen. Nichtsdestotrotz können Einzelparameter wünschenswert sein, um bestimmte Teilfunktionalitäten einzeln ansteuern zu können.

Außer sie ist statisch im DHCP konfiguriert …

– i see… – in diesem Fall wäre die Angabe der IP-Adresse sinnvoll und möglich und man könnte auf die Abhängigkeit zu scapy verzichten. Ist das der Kern Eures Wunsches?

Ich wollte natürlich erst einmal eine universell einsetzbare komfortable Möglichkeit für jedwelche Lebenslage (im LAN) erschließen. Wir können das jedoch gerne spezialisieren.

Nun mecker er, weil “winpcap” nicht installiert ist:

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
2019-07-10 17:02:10,115 [tools/terkin.py] INFO   : Local networks: ['192.168.178.0/24', '127.0.0.0/8']
2019-07-10 17:02:10,115 [tools/terkin.py] INFO   : Waiting for device with MAC address prefix 80:7d:3a to appear on your local network
Traceback (most recent call last):
  File "tools/terkin.py", line 262, in <module>
    run_monitor(mac_prefix, command)
  File "tools/terkin.py", line 256, in run_monitor
    boot_monitor(monitor)
  File "tools/terkin.py", line 240, in boot_monitor
    monitor.arp_monitor()
  File "tools/terkin.py", line 182, in arp_monitor
    sniff(prn=self.check_esp32, filter="arp", store=0)
  File "C:\Python37\lib\site-packages\scapy\sendrecv.py", line 836, in sniff
    *arg, **karg)] = iface
  File "C:\Python37\lib\site-packages\scapy\arch\windows\__init__.py", line 1352, in __init__
    raise RuntimeError("Sniffing and sending packets is not available: "  # noqa: E501
RuntimeError: Sniffing and sending packets is not available: winpcap is not installed
2019-07-10 17:02:10,633 [tools/terkin.py] INFO   : Sending an ARP ping to 127.0.0.0/8 to find devices already connected
2019-07-10 17:02:10,633 [tools/terkin.py] INFO   : Sending an ARP ping to 192.168.178.0/24 to find devices already connected
Exception in thread Thread-2:
Traceback (most recent call last):
  File "C:\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "tools/terkin.py", line 118, in arp_ping
    ans, unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=destination), timeout=2, verbose=self.VERBOSITY)
  File "C:\Python37\lib\site-packages\scapy\sendrecv.py", line 499, in srp
    s = conf.L2socket(promisc=promisc, iface=iface, filter=filter, nofilter=nofilter, type=type)  # noqa: E501
  File "C:\Python37\lib\site-packages\scapy\arch\windows\__init__.py", line 1352, in __init__
    raise RuntimeError("Sniffing and sending packets is not available: "  # noqa: E501
RuntimeError: Sniffing and sending packets is not available: winpcap is not installed

Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Python37\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Python37\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "tools/terkin.py", line 118, in arp_ping
    ans, unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=destination), timeout=2, verbose=self.VERBOSITY)
  File "C:\Python37\lib\site-packages\scapy\sendrecv.py", line 499, in srp
    s = conf.L2socket(promisc=promisc, iface=iface, filter=filter, nofilter=nofilter, type=type)  # noqa: E501
  File "C:\Python37\lib\site-packages\scapy\arch\windows\__init__.py", line 1352, in __init__
    raise RuntimeError("Sniffing and sending packets is not available: "  # noqa: E501
RuntimeError: Sniffing and sending packets is not available: winpcap is not installed

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware>

@MKO musste es wohl nicht mehr separat installieren, weil es vermutlich bereits durch die Installation von Nmap selbst an Bord kam.

Bei Npcap: Windows Packet Capture Library & Driver bekommst Du Npcap (den Nachfolger von Winpcap) solo.

Direktlink

Npcap 0.996 installer for Windows Vista/2008, 7/2008R2, 8/2012, 8.1/2012R2, 10/2016 (x86 and x64).

Sehr viel Router sind so eingestellt, das sie die IP die sie mal für ein Gerät vergeben haben auch für eine gewisse zeit reservieren. Klappt meiner Erfahrung nach sehr gut.

Auf lange Sicht macht es sicher sinn eine .exe fĂĽr Windows und diesen zweck zu Compilen. man sollte nicht, von Normalen Bob Usern erwarten das sie alle mit der Komandozeile per Du sind und sich auch noch mit Linux, Python und Co ins Bett gehen.

Aber wie ich weiĂź ja, das Du diesen weg auch beschreiten willst und aktuell die ersten schritte in diese Richtung gehst.
Dieser weg ist jedoch zwischendurch etwas holprig und ich glaube Jeder hier sollte bis dahin auch mal ein wenig auf Komfort und Luxus verzichten, damit es schneller vorwärts geht.
Gerade mit Windows, da es dort ja wie immer ein paar mehr Stolpersteine bei der Entwiklung gibt.

Wir haben jetzt schon 3 Möglichkeiten damit es bei Windows klappt.

  • Anaconda 500MB Pille aber unkomplizierter.
  • Python3.6 aber auf Windows etwas komplizierter einzurichten was die Libarys und den Path betrift.
  • Manuell und dafĂĽr den Router evtl umstellen, das er nicht jedes mal eine neue IP vergibt.
    oder schneller sein. Bestimmt bekommt man fĂĽr Windows auch schnell eine .bat/.cmd Datei hin, die das im Autopilot macht.

Machst auf alle fälle einen Tollen Job @Andreas

Meine etwas ältere Fritz!Box kann entsprechende DHCP-Leases für den FiPy scheinbar nicht reservieren. No idea why.

Das wäre toll, wenn wir unser Tooling irgendwann einmal in eine .exe falten könnten, ja. Gerade um Benutzern die erwähnten, manchmal fehleranfälligen Einzelschritte zu ersparen. terkin.exe, anyone?

Danke für die Zusammenfassung der aktuellen Möglichkeiten zur Basis der interaktiven Konfiguration über IP und natürlich genauso für Dein Engagement! Wenn die aktuelle terkin.py-Schwummse generell unter Windows nicht möglich gewesen wäre, wäre das komplette Mikrovorhaben natürlich von vornherein nonsense gewesen. Dadurch, dass Du die Funktionalität des Prototypen drüben bei ESP32 network discovery through LAN IP scanning and Ethernet ARP monitoring bestätigen konntest, konnten wir uns diesem Weg überhaupt erst intensiver widmen.

Ich hoffe, dass es gleich auch bei @clemens gut klappt und vielleicht auch bei @waggi und anderen.

Also, auch wenn ihr hier 3 Möglichkeiten aufzählt geht bei mir bisher weder 2 noch 3. Es geht ja nicht nur darum die IP rauszufinden, das kann ich zur Not auch über die FritzBox machen, sondern der maintenance-mode soll ja auf dem Gerät auch gestartet werden.

Nun lande ich da, nachdem ich npcap installiert habe:

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
2019-07-10 17:10:48,639 [tools/terkin.py] INFO   : Local networks: ['169.254.0.0/16', '192.168.178.0/24', '127.0.0.0/8']
2019-07-10 17:10:48,639 [tools/terkin.py] INFO   : Waiting for device with MAC address prefix 80:7d:3a to appear on your local network
2019-07-10 17:10:49,157 [tools/terkin.py] INFO   : Sending an ARP ping to 169.254.0.0/16 to find devices already connected
2019-07-10 17:10:49,157 [tools/terkin.py] INFO   : Sending an ARP ping to 127.0.0.0/8 to find devices already connected
2019-07-10 17:10:49,157 [tools/terkin.py] INFO   : Sending an ARP ping to 192.168.178.0/24 to find devices already connected
2019-07-10 17:10:56,595 [scapy.runtime] WARNING: DNS decompression loop detected
2019-07-10 17:11:02,175 [scapy.runtime] WARNING: DNS decompression loop detected
2019-07-10 17:11:03,142 [scapy.runtime] WARNING: more DNS decompression loop detected
1 Like

Genau. Alternativ ist das jederzeit möglich. Wenn man die IP-Adresse kennt, kann man das Gerät folgendermaßen in den Wartungsmodus versetzen.

Das ist natĂĽrlich so wie hier geschrieben 1:1 von einer GNU/Linux/macOS shell, vermutlich braucht das fĂĽr Windows (nativ) noch leichte Abwandlungen. telnet? PowerShell?

Never heard of that but totally makes my day.


With the commit from a few seconds ago, these networks will be skipped when sending out ARP ping requests. Hope this helps.

    2019-07-10 17:10:49,157 [tools/terkin.py] INFO   : Sending an ARP ping to 169.254.0.0/16 to find devices already connected
    2019-07-10 17:10:49,157 [tools/terkin.py] INFO   : Sending an ARP ping to 127.0.0.0/8 to find devices already connected

Windows restart … et voilà!

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
2019-07-10 17:46:06,379 [tools/terkin.py] INFO   : Local networks: ['169.254.0.0/16', '192.168.178.0/24', '127.0.0.0/8']
2019-07-10 17:46:06,379 [tools/terkin.py] INFO   : Waiting for device with MAC address prefix 80:7d:3a to appear on your local network
2019-07-10 17:46:06,903 [tools/terkin.py] INFO   : Sending an ARP ping to 169.254.0.0/16 to find devices already connected
2019-07-10 17:46:06,903 [tools/terkin.py] INFO   : Sending an ARP ping to 127.0.0.0/8 to find devices already connected
2019-07-10 17:46:06,903 [tools/terkin.py] INFO   : Sending an ARP ping to 192.168.178.0/24 to find devices already connected
2019-07-10 17:49:24,905 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:49:25,342 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:49:26,264 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:49:27,567 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:49:36,967 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:55:21,152 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:55:21,594 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:55:22,665 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 17:55:23,668 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}

Ich glaube so wars gedacht!

2 Likes

Noch eine Beobachtung: Mein FiPy schläft aktuell ca. 6 Minuten. Zwei Sendezyklen bekommt tools/terkin.py monitor immer mit, den dritten aber nicht mehr:

PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu\home\cgruber\hiveeyes\sources\hiveeyes-micropython-firmware> python tools/terkin.py monitor
2019-07-10 18:58:50,034 [tools/terkin.py] INFO   : Local networks: ['192.168.178.0/24']
2019-07-10 18:58:50,035 [tools/terkin.py] INFO   : Waiting for device with MAC address prefix 80:7d:3a to appear on your local network
2019-07-10 18:58:50,536 [tools/terkin.py] INFO   : Sending an ARP ping to 192.168.178.0/24 to find devices already connected
2019-07-10 19:01:27,448 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:01:27,960 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:01:29,087 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:01:30,110 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:01:41,885 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:07:27,486 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:07:28,508 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:07:29,532 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}
2019-07-10 19:07:30,556 [tools/terkin.py] INFO   : Found device at {'mac': '80:7d:3a:c3:37:b0', 'ip': '192.168.178.25'}

Hier die Daten, wie sie bei swarm.hiveeyes.org ankommen: Wichtig ist eigentlich nur der timestamp, wie gesagt UTC+002, d.h. 19:01 und 19:07 und 19:13 oben tauchen aber nur die beiden ersten Ăśbertragungen auf!

2019-07-10T17:01:42.421064Z,3.78,DE,22.0,22.0,21.75,181529,1009.73,0.981,0.981,15,,31722.0,2,78,181529.7,,9742.833,44.84,21.75,-22404.0,,,1,,35.56522,-84,2219360,22.47,21.4375
2019-07-10T17:07:42.751094Z,3.786,DE,21.8125,21.875,21.75,181891,1009.76,0.983,0.983,15,,31722.0,2,78,181891.8,,9705.334,43.46,21.75,-22404.0,,,1,,35.56522,-85,2217600,22.33,21.3125
2019-07-10T17:13:42.890994Z,3.786,DE,21.6875,21.75,21.5,182253,1009.71,0.982,0.982,15,,31722.0,2,78,182253.7,,9726.501,44.42,21.5,-22404.0,,,1,,35.56522,-85,2217600,22.16,21.1875

Hi Clemens,

schön dass es bei Dir nun grundsätzlich klappt und danke fürs Durchwurschteln.

Das sollten wir beobachten. Ich hoffe dass wir ggf. irgendwie nachlegen können. In der Zwischenzeit ist die Hauptsache, dass es gleich mit dem ersten klappt.

Viele GrĂĽĂźe,
Andreas.

Ich habe das Monitoring mal weiterlaufen lassen. Es bricht nicht komplett ab, hat aber sporadisch Aussetzer. Hier wurden Datensätze übertragen:

2019-07-10T17:13
2019-07-10T17:19
2019-07-10T17:25
2019-07-10T17:31

beim Monitoring fehlen hier aber Einträge und tools/terkin.py monitor liefert keine records.

Dann werden wieder Daten übertragen und auch das Monitoring registriert Aktivität:

2019-07-10T17:37
2019-07-10T17:43
2019-07-10T17:49
2019-07-10T17:55
2019-07-10T18:01
2019-07-10T18:13

Hier sind alle Daten da! Nun fehlen wieder loggings beim Monitoring:

2019-07-10T18:19
2019-07-10T18:25
2019-07-10T18:31

Danach passt es wieder eine Zeit lang:

2019-07-10T18:37
2019-07-10T18:43
2019-07-10T18:49
2019-07-10T18:55

Hier wieder nicht:;

2019-07-10T19:01
2019-07-10T19:07
2019-07-10T19:13